SPB Git

spb/wp29_uqo

Public

# F3-conf-04 — Multi-horizon forecasts of Canadian quarterly CPI inflation

# Question

Over 40 rolling origins (2015Q4–2025Q3), does a seasonal autoregression forecast Canadian quarterly CPI inflation (annualised, NSA) better than the seasonal-naive forecast at h = 1, 2, 4? And at h = 4, is the mean squared-error loss differential different from zero once we allow for the serial correlation that overlapping 4-step errors create?

# Data and exclusions

  • data/cpi_quarterly.csv: 127 rows read (1995Q1–2026Q3). data/cpi_monthly.csv: 381 rows read. I used it only to check provenance: rebuilding infl_annualised from the monthly file matches the given series to within 5e-7.
  • The quarters run in an unbroken sequence and nothing is missing apart from 1995Q1 inflation, which cannot be computed because there is no earlier quarter. I dropped that row, so the usable series is 1995Q2 onward (126 observations).
  • Targets run from 2016Q1 to 2026Q3. Nothing else was excluded.

# Method

  • Model (ar_seas_aic): OLS of y_t on a constant, Q2/Q3/Q4 dummies and p own lags. At each origin p ∈ {0,…,4} is chosen by AIC, comparing all lag lengths on the same sample. The model is then re-estimated on all usable observations from 1995Q2 to the origin (expanding window). Multi-step forecasts are iterated, using the known seasonal dummies of the target quarters. Every estimation and selection step uses only quarters ≤ origin. AIC chose p = 2 for origins up to 2021Q3 and p = 1 after that. The last estimation sample has 121 observations.
  • Seasonal naive: the forecast for quarter t+h is y in quarter t+h−4.
  • Metrics: RMSE and MAE of the 40 errors per horizon, and relative RMSE improvement 1 − RMSE_model/RMSE_snaive.
  • DM test at h = 4: d_t = e²_snaive − e²_model. The standard error of d̄ uses a Newey–West (Bartlett kernel) long-run variance with truncation lag 3 (= h − 1), and the p-value is two-sided from N(0,1). I fixed this specification before seeing any results. Sensitivity checks are in out/sensitivity.json, which analysis.py also writes.

# Results

h RMSE snaive RMSE model MAE snaive MAE model rel. RMSE improvement
1 2.849 2.193 2.137 1.519 0.230
2 2.847 2.463 2.126 1.553 0.135
4 2.882 2.343 2.181 1.597 0.187

(Units: percentage points, annualised.) At all three horizons the model has lower RMSE and lower MAE than the seasonal-naive forecast.

At h = 4: d̄ = 2.818 squared pp, HAC SE = 2.086 (Bartlett, lag 3), DM = 1.35, two-sided p = 0.177. The h = 4 improvement is not statistically distinguishable from zero at conventional levels.

# Uncertainty

  • How strong the h = 4 evidence looks depends on how the long-run variance is estimated:
    • Bartlett lag 4: DM 1.52, p = 0.13.
    • Rectangular lag 3: DM 1.66, p = 0.097.
    • Bartlett lag 6: DM 2.04, p = 0.041.
    • Harvey–Leybourne–Newbold small-sample correction with t(39): p = 0.23.
  • Only the longest lag (6) falls below 5%. That result is a post-hoc sensitivity check and should not replace the pre-specified test. With 40 overlapping errors the long-run variance is imprecisely estimated.
  • Descriptive DM tests at shorter horizons give p ≈ 0.10 at h = 1 and p ≈ 0.42 at h = 2.
  • The 2021–2023 inflation surge dominates the losses. Dropping h = 4 targets in 2021–2023 (28 origins remain) gives RMSE 2.03 for snaive and 1.52 for the model, so the model's ranking stays the same.

# Limitations and open issues

  • I picked one model before looking at the evaluation results; I did not search over specifications. Other models might do better or worse.
  • Errors are computed on the current data vintage, so I make no claim about real-time performance. In reality the data are published about three weeks after quarter-end, and the CPI basket is periodically updated.
  • 40 origins is a small sample. The DM test relies on asymptotic approximations, and the standard error is sensitive to the kernel and lag choice.
  • The DM test treats forecasts as given. It does not adjust for parameter-estimation uncertainty, which is fine for comparing these particular forecasts (in the Giacomini–White sense).
Files · main
Menu

Theme