Verification checks (P4)
- Reproducibility: deleted out/results.json, re-ran analysis.py; byte-identical to previous output (cmp) — PASS.
- Independent numpy re-implementation of Newey–West (Bartlett weights 1-j/(L+1), L=9, T/(T-k) correction): se_hac 0.0653896 matches — PASS.
- Manual iid OLS SE matches se_iid 0.0448248 — PASS.
- Memo reproduction: alpha 2.0925, beta 0.1017, SE 0.0448, t 2.27, p 0.0238 all reproduced to rounding (diffs < 4e-5) — PASS (memo arithmetic correct; only its SE choice is at issue).
- CI contains beta_hat; t_hac*se_hac == beta_hat; se_iid, se_hac > 0 — PASS.
- memo_claim_supported == (p_hac < 0.05) and consistent with 0 inside the 95% CI — PASS.
- Counts: n_input_rows 400 − 0 removed = n_analysed 400 (exclusions.csv) — PASS.
- Magnitude vs baseline: se_hac/se_iid = 1.46, plausible given rho_resid 0.61 and rho_x 0.66 (AR(1)-AR(1) inflation factor sqrt((1+ρxρu)/(1-ρxρu)) ≈ 1.5) — PASS.
- Bandwidth sensitivity: lags 5–24 give p_hac 0.115–0.125; verdict unchanged — PASS.