Verification checks (P4)
- Clean re-run: deleted out/results.json, re-ran analysis.py; byte-identical to previous output (cmp). PASS
- Independent cross-check with statsmodels OLS (conventional bse and HC1 robust cov) on the same 2000 draws: coverage_conventional 0.844, coverage_hc1 0.902, mean_se_conventional, sd_beta_mc all identical. PASS
- sd_beta_exact equals sqrt([(X'X)^-1 X' diag(sigma^2) X (X'X)^-1]_22) from matrix formula = 0.26798. PASS
- sd_beta_mc (0.26965) vs exact: z = 0.39 using approx SE sd/sqrt(2(R-1)). Consistent. PASS
- mean betahat 0.4962 vs 0.5: z = -0.63; unbiasedness consistent. PASS
- Positive SEs: sd_beta_exact, sd_beta_mc, mean_se_conventional > 0. PASS
- Coverages in [0,1]; n_replications=2000, n_obs=30; exclusion ledger 30-0=30. PASS
- Undercoverage rule: 0.95-0.844=0.106 > 3*0.004873=0.0146 -> true. PASS
- Magnitude sanity: mean_se_conventional (0.190) < sd_beta_exact (0.268), consistent with the homoskedastic-formula SD 0.196 — explains the undercoverage of the baseline; HC1 mean se 0.241 closer but still below. PASS