F5-conf-02 — Finite-sample bias of the OLS AR(1) coefficient
Question
For the Gaussian AR(1) y_t = c + ρ y_{t−1} + ε_t (c = 0 in the DGP, σ = 1), with ρ estimated by OLS of y_t on (1, y_{t−1}), t = 2…n, how does the Marriott–Pope/Kendall approximation E[ρ̂] − ρ ≈ −(1+3ρ)/n compare with the actual finite-sample bias at the design n = 30, ρ = 0.8?
Data and exclusions
The only input is data/design.csv (7 parameter rows, n_input_rows; SHA-256 recorded in out/state/data_audit.md): n = 30, ρ = 0.8, σ = 1, intercept included, stationary initial condition, R = 20000 replications, seed 20261029 (random_seed). No data issues were found (data_issues = []). The one exclusion rule (drop replications where the variance of y_{t−1} is zero or non-finite) removed 0 replications, so all 20000 were analysed (n_replications, n_analysed; out/exclusions.csv).
Method
- Simulation:
numpy.random.default_rng(20261029). The draw order is: first R standard normals for y_1 ~ N(0, σ²/(1−ρ²)), then an R×(n−1) matrix of innovations. Then y_t = ρ y_{t−1} + ε_t. Each replication is a new series of 30 observations. - Estimation: OLS slope with an intercept on the 29 pairs (y_{t−1}, y_t), computed as the demeaned cross-product divided by the demeaned sum of squares. The script checks this against
numpy.linalg.lstsq. - Monte Carlo bias = mean(ρ̂) − ρ. Its MC standard error is sd(ρ̂)/√R.
- Baseline: the textbook asymptotic standard error √((1−ρ²)/n) (
se_asymptotic). Asymptotic theory treats ρ̂ as unbiased, so its implied bias is 0. - What the analytical formula is. −(1+3ρ)/n is the leading (order 1/n) term of an asymptotic expansion of E[ρ̂] − ρ as n → ∞. The neglected remainder is O(n⁻²). It is not an exact finite-sample result. It is accurate in the sense that n × (true bias) → −(1+3ρ) as n grows. At a fixed small n, and especially with ρ near 1 (where the higher-order terms are larger), it can differ noticeably from the true bias. Whether n or n−1 is used in the denominator is itself an O(n⁻²) choice. The task defines it at n = 30.
Results
| quantity | value | key |
|---|---|---|
| analytical bias −(1+3ρ)/n | −0.11333 | bias_analytical |
| MC bias | −0.12371 | bias_mc |
| MC standard error of the bias | 0.00105 | bias_mc_se |
| mean of ρ̂ | 0.67629 | rho_hat_mean |
| sd of ρ̂ across replications | 0.14891 | rho_hat_sd_mc |
| (MC − analytical)/MC SE | −9.85 | discrepancy_se_units |
| asymptotic SE √((1−ρ²)/n) | 0.10954 | se_asymptotic |
- The OLS estimator is strongly biased downward. On average ρ̂ ≈ 0.676 against a true value of 0.8 (
rho_hat_mean,bias_mc). That bias is about 0.83 of the asymptotic SE (0.1237/0.1095 frombias_mcandse_asymptotic). - The analytical approximation captures the sign and most of the size of the bias. The MC bias is about 1.09 times the approximation (
supp_ratio_bias_mc_to_analytical). - The remaining gap of about −0.0104 is −9.85 MC standard errors (
discrepancy_se_units). It is therefore not Monte Carlo noise: at this design the first-order formula understates the size of the bias by about 9%. - Using n−1 = 29 in the denominator (−0.1172,
supp_bias_analytical_n_minus_1) narrows the gap but does not close it: −6.14 MC SEs (supp_discrepancy_se_units_n_minus_1). - The sampling distribution of ρ̂ is also wider than first-order theory says: sd(ρ̂) is 1.36 times √((1−ρ²)/n) (
supp_ratio_sd_mc_to_se_asymptotic). It is left-skewed: the median of 0.699 (supp_rho_hat_median) is above the mean.
Uncertainty
The MC standard error of bias_mc is 0.00105 (bias_mc_se). The normal-approximation 95% interval is [−0.1258, −0.1216] (supp_bias_mc_ci95), and it excludes the analytical value −0.1133. MC uncertainty is the only source of uncertainty here, because the design is known exactly. The results depend on the stated seed and draw order. A different seed would change bias_mc by roughly ±0.002 (2 SEs), which leaves the conclusion unchanged.
Limitations and open issues
- The Monte Carlo establishes the finite-sample bias only at this one design: n = 30, ρ = 0.8, Gaussian innovations, stationary start, intercept included, c = 0. Because the OLS slope with an intercept does not depend on σ or c, the result also holds for any σ > 0 and any c with a stationary start. It does not show how well the formula works at other n or ρ, with non-Gaussian errors, with a fixed initial condition, or near a unit root. It also does not prove any general rate. The finding that the discrepancy is consistent with an O(n⁻²) remainder is an interpretation, not something tested here (that would require several values of n).
- The analytical formula is a large-n approximation. A gap of about 9% at n = 30 with ρ = 0.8 does not mean the formula is "wrong". It means it is first-order accurate rather than exact. The size of the gap should be expected to shrink, both absolutely and relative to the bias, as n grows.
- The choice between n and n−1 in the formula is a convention. The task-specified n = 30 is used for
bias_analytical, and the n−1 variant is reported only as a supplementary result. - No other open issues: the task was completed as specified (
feasibility= "complete").