SPB Git

spb/wp29_uqo

Public

# F3-dev-01 — Can an AR model beat the naive forecast of US unemployment? (Rolling origins 2023-07 to 2026-06)

# Question

Over the 36 monthly forecast origins 2023-07-01 … 2026-06-01, does a simple autoregressive model forecast the US unemployment rate (FRED UNRATE, SA, %) better than the naive no-change forecast at horizons h = 1 and h = 3 months? We compare out-of-sample RMSE and MAE and report 1 − RMSE_model/RMSE_naive.

# Data and exclusions

  • data/UNRATE.csv: 945 data rows, 1948-01 to 2026-09. Dates are unique, in order and have no calendar gaps.
  • Missing value: 2025-10-01 has an empty field (no October 2025 observation). How it was handled:
    • The 2025-10 target is not scored. Two (origin, horizon) pairs are affected: origin 2025-09 at h=1 and origin 2025-07 at h=3. They stay in forecasts.csv with an empty actual. This leaves 35 evaluated pairs per horizon.
    • In estimation, any regression row whose dependent or lagged difference involves 2025-10 is dropped.
    • At origin 2025-10, the naive forecast uses 2025-09 (4.4). The AR model iterates forward from 2025-09, adding one extra step.
    • At later origins, 2025-10 is linearly interpolated from 2025-09 and 2025-11, both dated ≤ origin. This is used only to build lag inputs and is never used as an estimation observation.
  • COVID-19 outlier: unemployment rose from 4.4 (2020-03) to 14.8 (2020-04). In the primary specification this outlier was kept, a choice made in advance. A sensitivity check is reported below.
  • Every error is computed on the final vintage, so none of these results are valid in real time.

# Method

  • Naive: the forecast for all h is the latest observation dated ≤ origin.
  • Model AR2_diff: an AR(2) with intercept on monthly first differences Δy_t.
    • Estimated by OLS on an expanding window that starts at the beginning of the series and ends at the origin. It is re-estimated at every origin using only data dated ≤ origin.
    • h-step forecasts come from iterating the difference equation and adding the steps to the last level.
    • The specification was fixed before looking at any results, with no model selection. The last training window (origin 2026-06) has 935 regression observations.
  • Uncertainty: Diebold–Mariano test on squared-error loss differentials, with HAC variance (h−1 lags) and the Harvey–Leybourne–Newbold small-sample correction, compared against a t(n−1) distribution.
  • Reproducibility: out/analysis.py writes results.json, forecasts.csv and supplementary.json. It is deterministic and uses no random numbers.

# Results

horizon n RMSE naive RMSE AR2_diff MAE naive MAE AR2_diff 1 − RMSE ratio
h=1 35 0.1171 0.1199 0.0914 0.0957 −0.0235
h=3 35 0.1586 0.1598 0.1200 0.1213 −0.0076

The AR model does not beat the naive forecast. It is slightly worse on both RMSE and MAE at both horizons: about 2.3% higher RMSE at h=1 and 0.8% at h=3. Its absolute error was smaller than the naive error at only 10 of 35 origins (28.6%) at each horizon.

Why: the estimated AR coefficients are close to zero. At the last origin they are intercept 0.0003, lag 1 0.037 and lag 2 −0.042, and they are almost the same at the first origin. The 2020 spike dominates the full-sample OLS fit and pushes them towards zero. As a result the model is close to a random walk, and its forecasts differ from the naive one by only a few thousandths of a point. The data are recorded to 0.1 pp.

# Uncertainty

  • h=1: DM-HLN statistic = 2.50, two-sided p = 0.017. Positive means the model's loss is higher. The model's (small) inferiority is nominally significant at the 5% level.
  • h=3: statistic = 1.36, p = 0.18, so there is no significant difference.
  • Treat these tests with caution:
    • n = 35, and the two forecasts are nearly identical, so the loss differentials are tiny (mean 0.00065 pp² at h=1).
    • The DM test's assumptions are only approximately met.
    • The economic difference is negligible.
  • Sensitivity (not pre-specified; report only): I dropped 2020-03…2020-12 differences from estimation. The AR coefficients then become substantial (lag 1 0.08, lag 2 0.28 at the last origin), but out-of-sample performance gets worse:
    • h=1: RMSE 0.1186, relative improvement −0.013.
    • h=3: RMSE 0.1756, relative improvement −0.108.
  • The conclusion "no improvement over naive" therefore holds up under this alternative.

# Limitations and open issues

  • The evaluation covers only 36 origins in one fairly calm, slowly rising unemployment period. The results may not carry over to recessions.
  • Final-vintage data were used, not real-time vintages. Seasonal-factor revisions may change the errors.
  • Only one model specification was evaluated. The primary model's near-zero coefficients largely reflect the influence of the COVID outlier, so the comparison is effectively "random walk with tiny drift vs random walk".
  • The missing 2025-10 value reduces each horizon to 35 evaluated pairs. Interpolating it as a lag input is a modelling choice.
  • The HAC/DM inference is approximate in small samples.
Files · main
Menu

Theme