Verification checks (P4)
- Clean re-run of out/analysis.py produces byte-identical results.json (cmp) — PASS.
- Independent recomputation: per-replication loop with np.linalg.lstsq on (1, y_{t-1}) using the same seed/draw layout reproduces rho_hat_mean and rho_hat_sd_mc exactly (diff 0.0) — PASS. statsmodels OLS on first 200 reps agrees (mean 0.6805, consistent subsample) — PASS.
- bias_mc = rho_hat_mean - rho: 0.677659 - 0.8 = -0.122341 — PASS.
- bias_mc_se = rho_hat_sd_mc/sqrt(20000) = 0.14792/141.42 = 0.001046 > 0 — PASS; rho_hat_sd_mc>0, se_asymptotic>0 — PASS.
- discrepancy_se_units = (-0.122341+0.113333)/0.001046 = -8.61 — PASS.
- bias_analytical = -(1+2.4)/30 = -0.113333; se_asymptotic = sqrt(0.36/30) = 0.10954 — PASS.
- Counts: n_replications 20000 - removed 0 = n_analysed 20000 — PASS.
- 95% CI for bias_mc [-0.12439, -0.12029] contains bias_mc — PASS.
- Magnitudes: bias is about 0.83 sd of rho_hat and comparable to se_asymptotic — plausible for n=30, rho=0.8 (known downward bias). Sign negative as theory predicts — PASS.