| 1 |
Clean re-run of out/analysis.py (results.json and exclusions.csv deleted first) gives byte-identical results.json |
PASS |
| 2 |
Hand-coded Newey–West (Bartlett, L=8, n/(n-2) correction) SE = 0.0653108 matches se_hac |
PASS |
| 3 |
t_hac = beta_hat / se_hac |
PASS |
| 4 |
beta_ci_low < beta_hat < beta_ci_high |
PASS |
| 5 |
se_iid > 0, se_hac > 0; se_hac/se_iid = 1.46 > 1, as expected with positively autocorrelated x and u |
PASS |
| 6 |
Baseline (iid) reproduces memo: a=2.0925, b=0.1017, se=0.0448, t=2.27, p=0.0238 |
PASS |
| 7 |
Exclusion ledger: 400 raw − 0 removed = 400 = n_analysed |
PASS |
| 8 |
Verdict consistency: p_hac>0.05 and CI contains 0 -> memo_claim_supported=false; holds for all lags in {5,8,12,16,24} |
PASS |
| 9 |
rho_resid=0.61 vs stated ~0.7: plausible (OLS residual autocorrelation is biased downward in finite samples); not a failure |
NOTE |