1# F3-conf-04 — Multi-horizon forecasts of Canadian quarterly CPI inflation23## Question4Over 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?56## Data and exclusions7- `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.8- 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).9- Targets run from 2016Q1 to 2026Q3. Nothing else was excluded.1011## Method12- **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.13- **Seasonal naive**: the forecast for quarter t+h is y in quarter t+h−4.14- **Metrics**: RMSE and MAE of the 40 errors per horizon, and relative RMSE improvement 1 − RMSE_model/RMSE_snaive.15- **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.1617## Results18| h | RMSE snaive | RMSE model | MAE snaive | MAE model | rel. RMSE improvement |19|---|---|---|---|---|---|20| 1 | 2.849 | 2.193 | 2.137 | 1.519 | 0.230 |21| 2 | 2.847 | 2.463 | 2.126 | 1.553 | 0.135 |22| 4 | 2.882 | 2.343 | 2.181 | 1.597 | 0.187 |2324(Units: percentage points, annualised.) At all three horizons the model has lower RMSE and lower MAE than the seasonal-naive forecast.2526At 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.**2728## Uncertainty29- How strong the h = 4 evidence looks depends on how the long-run variance is estimated:30 - Bartlett lag 4: DM 1.52, p = 0.13.31 - Rectangular lag 3: DM 1.66, p = 0.097.32 - Bartlett lag 6: DM 2.04, p = 0.041.33 - Harvey–Leybourne–Newbold small-sample correction with t(39): p = 0.23.34- 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.35- Descriptive DM tests at shorter horizons give p ≈ 0.10 at h = 1 and p ≈ 0.42 at h = 2.36- 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.3738## Limitations and open issues39- I picked one model before looking at the evaluation results; I did not search over specifications. Other models might do better or worse.40- 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.41- 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.42- 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).43