SPB Git

spb/wp29_uqo

Public

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

# Question

Across 40 rolling origins (2015Q4–2025Q3), does a time-series model forecast Canadian quarterly CPI inflation (400·Δln of the quarterly-average NSA CPI) better than the seasonal-naive forecast at h = 1, 2, 4? And at h = 4, is the mean squared-error loss differential distinguishable from zero once the serial correlation caused by overlapping forecast errors is accounted for (a Diebold–Mariano test with a HAC standard error)?

# Data and exclusions

  • data/cpi_quarterly.csv: 127 rows (1995Q1–2026Q3); data/cpi_monthly.csv: 381 rows (provenance only). I checked that the quarterly cpi_avg equals the mean of the monthly values, and that infl_annualised equals 400·Δln cpi_avg. Both checks passed (tolerance 1e-5).
  • The only exclusion is 1995Q1, which has no inflation value because it is the first difference. That leaves 126 inflation observations. All 120 targets (40 origins × 3 horizons, last target 2026Q3) are observed.
  • The information rule is enforced in code: each forecast uses only quarters ≤ origin. The current data vintage is used, so no real-time validity is claimed.

# Method

  • Baseline (snaive): the forecast for quarter t+h is the inflation value of quarter t+h−4.
  • Model (ar_sd_aic): OLS regression of inflation on an intercept, three quarterly seasonal dummies and p own lags.
    • p ∈ {0,…,4} is chosen by AIC at every origin. All candidate p are compared on a common sample that starts at 1996Q2.
    • The window expands up to the origin. Multi-step forecasts are iterated, and the dummies are set for the target quarter.
    • AIC chose p = 2 for the origins 2015Q4–2021Q4 and p = 1 for 2022Q1 onward.
    • The last estimation sample (origin 2025Q3) has 118 observations.
  • h = 4 test: d_t = e²_snaive − e²_model over the 40 origins. The standard error of d̄ uses a Newey–West long-run variance (Bartlett kernel, truncation lag 3 = h−1, chosen before seeing results). The p-value is two-sided and normal-based.
  • The procedure is deterministic, with no random numbers.

# Results

h RMSE snaive RMSE model MAE snaive MAE model 1 − RMSE ratio
1 2.849 2.192 2.137 1.519 0.231
2 2.847 2.460 2.126 1.550 0.136
4 2.882 2.340 2.181 1.594 0.188

(Units: percentage points, annualised.) The model has lower RMSE and lower MAE than the seasonal-naive forecast at every horizon, with RMSE gains of 14–23%.

At h = 4, d̄ = 2.834 squared pp. The HAC standard error is 2.082 (Bartlett, 3 lags), giving DM = 1.36 and p = 0.174. At conventional levels, the h = 4 difference cannot be distinguished from zero.

# Uncertainty

Sensitivity checks, printed by analysis.py and not stored in results.json:

  • Small-sample correction: with the Harvey–Leybourne–Newbold correction and a t(39) reference, the statistic is 1.24 (p ≈ 0.22).
  • Alternative HAC choices: a rectangular kernel with 3 lags gives DM = 1.67. Bartlett with 4 lags gives 1.53.
  • Longer Bartlett lags (6 and 8) give 2.06 and 2.37. This is because of negative higher-order autocorrelations in d_t. These lags were not pre-specified and I do not use them for inference. With only 40 overlapping observations, the conclusion depends on the HAC choice.
  • Shorter horizons (descriptive only): Bartlett HAC with 3 lags gives DM ≈ 1.75 at h = 1 and ≈ 0.80 at h = 2.
  • Excluding the 2021–2023 inflation surge (targets dated 2021Q1–2023Q4, n = 28 at h = 4): RMSE is 2.03 for snaive and 1.52 for the model. The ranking holds outside the surge period.

# Limitations and open issues

  • Only one model specification was evaluated, and no search over models was done. Forty origins give low power, and the surge years strongly influence the losses.
  • The DM test is applied to forecasts from an expanding-window estimated model. It is interpreted as a test of equal forecast accuracy for these specific procedures, not of population models.
  • The data are the current vintage, with occasional basket and chain updates. Results are not real-time.
  • The normal reference distribution and the HAC choice matter in this small sample (see Uncertainty).
Files · main
Menu

Theme