You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(iv): 3 critical + 6 high-priority bugs from code review
CRITICAL fixes:
- KP rk: Kronecker order inverted in robust meat (kron(v⊗v,z⊗z) → kron(z⊗z,v⊗v))
- KP rk LM: use SVD min singular value instead of tr(A²) for correct chi² df
- ivmte_lp: remove dead-code tautology in ATT weight path
HIGH fixes:
- IJIVE: remove incorrect D-shrinkage (AD09 differs only in SE, not point est)
- NPIV: multi-Z now uses linear projection index instead of ‖Z‖₂
- Bayesian IV: avoid n×n PZ matrix, use ZtZ_inv for O(nk) computation
- weak_iv_ci: avoid n×n M_Z in CLR/K-test loops via YD'YD - (Zs'YD)'(Zs'YD)
- KP rk: add try/pinv fallback for singular Z'Z
- SW: correct df_denom to n-kW-k-(p-1) per SW (2016) eq. 7
MEDIUM fixes:
- plausibly_exogenous: validate gamma_grid length divisibility
- __init__.py: move numpy import to top of file
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments