SPB Git

spb/wp29_uqo

Public

# 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 from bias_mc and se_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").
Files · main
Menu

Theme