Verification checks (P4)
- Clean re-run of analysis.py reproduced results.json byte-identically: PASS
- lstsq cross-check of closed-form OLS slope on replication 0 (assert in script): PASS
- bias_mc == rho_hat_mean - 0.8: PASS
- bias_mc_se == sd/sqrt(R): PASS
- bias_analytical == -(1+2.4)/30: PASS
- se_asymptotic == sqrt(0.36/30): PASS
- discrepancy identity: PASS
- SEs positive: PASS
- CI contains estimate: PASS
- n_analysed + excluded == R: PASS
- bias sign negative & same order as analytical: PASS