1# F5-conf-02 — Finite-sample bias of the OLS AR(1) coefficient23## Question4In the Gaussian AR(1) y_t = c + ρ y_{t−1} + ε_t (c = 0, σ = 1), how large is the finite-sample bias of the OLS estimator ρ̂ from a regression of y_t on (1, y_{t−1}), and how well does the Marriott–Pope/Kendall approximation −(1+3ρ)/n describe it at the design n = 30, ρ = 0.8?56## Data and exclusions7The only input is `data/design.csv` (7 rows, `n_input_rows`; SHA-256 recorded in `out/state/data_audit.md`): n = 30, ρ = 0.8, σ = 1, intercept included, stationary start, R = 20000 replications, seed 20261029 (`random_seed`). No data issues were found (`data_issues` = []). The one filtering rule, dropping replications with a non-finite ρ̂, removed 0 replications (`out/exclusions.csv`). That leaves `n_analysed` = 20000 = `n_replications`.89## Method10- **Analytical baseline.** `bias_analytical` = −(1+3ρ)/n with n = 30 (the design series length), which gives −0.11333. The textbook asymptotic standard error is `se_asymptotic` = √((1−ρ²)/n) = 0.1095.11- **Monte Carlo.** We used `numpy.random.default_rng(20261029)`. The draws come in a fixed order: first y_1 ~ N(0, σ²/(1−ρ²)) for all R series, then an R×(n−1) matrix of N(0, σ²) innovations. Each series is built by recursion with c = 0. For each series, ρ̂ is the OLS slope of y_t on (1, y_{t−1}) for t = 2,…,30 (29 observations). It is computed from demeaned cross-products, and the result was checked against `numpy.linalg.lstsq` on one replication. Then `bias_mc` = mean(ρ̂) − ρ and `bias_mc_se` = sd(ρ̂)/√R.12- **Nature of the analytical formula.** −(1+3ρ)/n is the leading term of an asymptotic expansion of E[ρ̂] − ρ in powers of 1/n: bias = −(1+3ρ)/n + O(n⁻²). It is accurate in the sense that the approximation error shrinks faster than 1/n as n → ∞. It is not an exact formula, and it is not guaranteed to be accurate at any particular small n. The neglected higher-order terms are expected to matter more when n is small and when ρ is close to 1.1314## Results15- Mean of ρ̂: `rho_hat_mean` = 0.6763. Monte Carlo bias: `bias_mc` = −0.1237.16- Analytical approximation: `bias_analytical` = −0.1133. The Monte Carlo bias is about 9% larger in magnitude (`supp_ratio_bias_mc_to_analytical` = 1.092).17- Standardised difference: `discrepancy_se_units` = −9.85 Monte Carlo standard errors. The formula therefore under-states the magnitude of the true bias at this design, and the gap is far too large to be Monte Carlo noise.18- Is the gap just a matter of using n − 1 = 29 (the effective regression sample) in place of n = 30? No. That version of the formula gives −0.1172 (`supp_bias_analytical_n_minus_1`), which still leaves a gap of about −6.1 standard errors (computed in the P4 checks).19- Size of the bias relative to sampling spread: the bias is roughly the same size as the asymptotic s.e. (`se_asymptotic` = 0.1095). The Monte Carlo sd of ρ̂ is `rho_hat_sd_mc` = 0.1489, about 1.36 times the asymptotic s.e. (`supp_ratio_sd_mc_to_se_asymptotic`). The distribution of ρ̂ is skewed to the left: its median is 0.699 (`supp_rho_hat_median`), above its mean.2021## Uncertainty22The Monte Carlo standard error of the bias is `bias_mc_se` = 0.00105. A normal-approximation 95% interval for the true bias is therefore about [−0.1258, −0.1216]. This interval does not contain −0.1133 (`bias_analytical`). With R = 20000 independent replications, the central limit theorem justifies the normal approximation for the mean even though ρ̂ is skewed. `bias_analytical` and `se_asymptotic` are deterministic and have no Monte Carlo error. The results are exactly reproducible given the seed. A different seed would move `bias_mc` by roughly ±1 `bias_mc_se`.2324## Limitations and open issues25- **Scope of the Monte Carlo evidence.** The simulation measures the exact finite-sample bias, up to Monte Carlo error, at a single design point: n = 30, ρ = 0.8, Gaussian errors, stationary start, intercept estimated. It shows that at this point the first-order formula is off by about 0.010, roughly 9% of the bias. It does **not** show that the formula is "wrong" in its intended asymptotic sense, because a gap at fixed n is consistent with an O(n⁻²) remainder. A single n cannot verify or refute a rate statement. The results also do not carry over to other n, other ρ (especially values near 1), non-Gaussian or heteroskedastic errors, non-stationary starts, or regressions without an intercept, where the leading term is −2ρ/n instead.26- **Ambiguity in n.** The formula was evaluated at n = 30 as instructed ("at the design values"). The n − 1 variant is reported only as a supplementary check, and it does not change the conclusion.27- **Supplementary keys.** Keys prefixed `supp_` are descriptive extras computed by `out/analysis.py`. They are not required by the task.28- No part of the task was infeasible (`feasibility` = "complete").29