| Clean re-run of out/analysis.py (results.json and exclusions.csv deleted first) reproduces results.json byte-identically |
PASS (cmp identical) |
| OLS slope via demeaned formula equals np.linalg.lstsq with intercept (replication 1, tol 1e-10) |
PASS (assert in script) |
| bias_mc == rho_hat_mean - rho |
PASS ( |
| bias_mc_se == rho_hat_sd_mc / sqrt(R) |
PASS |
| bias_mc_se, rho_hat_sd_mc, se_asymptotic > 0 |
PASS |
| bias_analytical == -(1+3*0.8)/30 = -0.11333 |
PASS |
| discrepancy_se_units recomputed = -9.855 |
PASS |
| Exclusion ledger: 20000 raw - 0 removed = 20000 = n_analysed |
PASS |
| Magnitude vs baseline: bias_mc (-0.1237) same sign/order as bias_analytical (-0.1133); rho_hat_sd_mc (0.149) vs se_asymptotic (0.110) plausible (small-n inflation) |
PASS |
| Design followed: n=30, rho=0.8, sigma=1, c=0, intercept, stationary y_1, R=20000, seed=20261029 |
PASS |