F5-conf-02 — Finite-sample bias of the OLS AR(1) coefficient
Question
In the Gaussian AR(1) model y_t = c + ρ y_{t−1} + ε_t, ε_t ~ iid N(0, σ²), with an estimated intercept, how large is the finite-sample bias of the OLS estimator ρ̂, and how close is it to the Marriott–Pope/Kendall approximation −(1+3ρ)/n at the design n = 30, ρ = 0.8?
Data and exclusions
The only input is data/design.csv (7 rows, n_input_rows; SHA-256 2f459c53…, which matches bundle.json). Design: n = 30, ρ = 0.8, σ = 1, intercept included, stationary start y_1 ~ N(0, σ²/(1−ρ²)), R = 20000 replications, seed 20261029 (random_seed). The DGP sets c = 0. I found no data issues (data_issues = []). One exclusion rule (drop replications where OLS is degenerate) removed 0 replications, so 20000 were analysed (n_replications, n_analysed; see out/exclusions.csv).
Method
- Analytical approximation (baseline).
bias_analytical= −(1+3ρ)/n, evaluated with n = 30 as the task specifies. This is a first-order asymptotic (large-n) expansion of the bias: E[ρ̂] − ρ = −(1+3ρ)/n + O(n⁻²). It gets the leading 1/n term right, but it is not an exact finite-sample formula. Its relative error shrinks only as n grows, and the neglected higher-order terms are largest when n is small and ρ is near 1. It is derived for the stationary Gaussian model with an estimated mean. The baseline sampling scale is the textbook asymptotic SE,se_asymptotic= √((1−ρ²)/n). - Monte Carlo. I used
numpy.random.default_rng(20261029)to draw one 20000×30 standard-normal matrix. Column 1 gives the stationary y_1 (scaled by σ/√(1−ρ²)). Columns 2–30 give the innovations, and y_t = ρ y_{t−1} + ε_t. In each replication ρ̂ is the OLS slope from regressing y_t on (1, y_{t−1}) for t = 2,…,n (29 pairs), computed as a demeaned cross-product ratio (Frisch–Waugh–Lovell).bias_mc= mean(ρ̂) − ρ;bias_mc_se= sd(ρ̂)/√R;discrepancy_se_units= (bias_mc − bias_analytical)/bias_mc_se. Everything is generated byout/analysis.py.
Results
| quantity | key | value |
|---|---|---|
| analytical bias −(1+3ρ)/n | bias_analytical |
−0.11333 |
| MC bias | bias_mc |
−0.12234 |
| MC SE of bias | bias_mc_se |
0.00105 |
| mean ρ̂ | rho_hat_mean |
0.67766 |
| sd ρ̂ across reps | rho_hat_sd_mc |
0.14792 |
| discrepancy (SE units) | discrepancy_se_units |
−8.61 |
| asymptotic SE √((1−ρ²)/n) | se_asymptotic |
0.10954 |
- OLS clearly underestimates ρ. The mean of ρ̂ is 0.678 against a true value of 0.8 (
rho_hat_mean,bias_mc). About 79% of the estimates fall below ρ (supp_share_rho_hat_below_rho), and the median is 0.699 (supp_rho_hat_median). - The analytical formula captures most of the bias, but the MC bias is about 8% larger in magnitude (
supp_ratio_bias_mc_to_analytical= 1.08). The difference is −0.0090, which is 8.6 Monte Carlo SEs (discrepancy_se_units). It is therefore not Monte Carlo noise. - Plugging the effective sample size n−1 = 29 into the formula gives −0.1172 (
supp_bias_analytical_neff). That moves it closer but still leaves a gap of about 5 MC SEs, so the remaining difference is consistent with neglected O(n⁻²) terms rather than with how n is counted alone. - The bias is large relative to the sampling spread: about 0.83 sd of ρ̂ (
supp_bias_mc_over_sd). The Monte Carlo sd of ρ̂ is 1.35 times the textbook asymptotic SE (supp_ratio_sd_mc_to_se_asymptotic), and the RMSE is 0.192 (supp_rmse_mc).
Uncertainty
The MC standard error of the bias estimate is 0.00105 (bias_mc_se), giving an approximate 95% interval of [−0.1244, −0.1203] (supp_bias_mc_ci95_low, supp_bias_mc_ci95_high). The interval excludes the analytical value −0.1133. The analytical value has no sampling uncertainty because it is deterministic. Results are exactly reproducible with the fixed seed. I checked them by an independent per-replication least-squares recomputation (out/state/checks.md).
Limitations and open issues
- What the approximation is. −(1+3ρ)/n is a leading-order asymptotic expansion, accurate up to O(n⁻²). It is not meant to be exact at any fixed n. A statistically significant discrepancy at n = 30, ρ = 0.8 is therefore what the expansion itself allows for. It does not show that the formula is "wrong". It shows that at this design the higher-order terms are about 8% of the bias, enough to resolve with R = 20000.
- What the Monte Carlo can and cannot establish. The MC estimates the exact finite-sample bias at this single design point only (n = 30, ρ = 0.8, Gaussian errors, stationary start, intercept). It cannot establish how the approximation behaves at other values of n or ρ, under non-Gaussian or heteroskedastic errors, with a fixed or non-stationary initial condition, without an intercept, or with a trend. It also cannot establish the O(n⁻²) rate itself; that would need a grid over n, which this task did not request.
- The ±1.96·SE interval relies on a normal approximation for the mean of 20000 draws. This is unproblematic here, even though the distribution of ρ̂ is left-skewed.
- The −8.6 SE discrepancy uses n = 30 in the formula, as the task specifies. Other conventions (n−1 effective observations) change its size but not its sign or significance.