Forecast Evaluation for Decisions

Design honest pseudo-out-of-sample tests for point, density, and tail forecasts with long-run covariance and real-time information.

Forecast Evaluation for Decisions

A forecast is an information experiment

A historical forecast f^t+ht\hat f_{t+h|t} is valid only if it can be reconstructed from information available at origin tt. This requires:

  • a training window ending at tt;
  • the release vintage available at tt;
  • transformations estimated without future observations;
  • model and hyperparameter choices made inside the training procedure;
  • a benchmark and loss fixed before comparing results.

Random train/test splitting is generally inappropriate because it lets later observations help predict earlier ones.

Match the loss to the action

ForecastFunctionalExample loss
conditional meanE(yF)E(y\mid\mathcal F)squared error (yy^)2(y-\hat y)^2
conditional medianmedian(yF)(y\mid\mathcal F)absolute error $
quantile τ\tauqτ(yF)q_\tau(y\mid\mathcal F)check loss (τI{y<q})(yq)(\tau-I\{y<q\})(y-q)
densityfull predictive distributionnegative log score or CRPS
volatilityconditional scale/varianceQLIKE or decision-specific loss
VaR and ESlower-tail risk functionalsjoint strictly consistent score

A model can win under RMSE and lose under tail loss. That is not a contradiction; the losses reward different decisions.

Pseudo-out-of-sample design

For origins t=T0,,Tht=T_0,\ldots,T-h:

  1. reconstruct the data available at tt;
  2. estimate each model on a rolling or expanding window;
  3. issue an hh-step forecast;
  4. wait for the target according to a stated vintage convention;
  5. record all model losses at the same origin.

Use an expanding window when parameters are assumed stable and old data remain informative. Use a rolling window when adaptation to structural change is part of the design. Comparing many window lengths on the final test period turns that period into training data.

Comparing two forecasts

Let

dt=L(yt,f^1,t)L(yt,f^2,t).d_t=L(y_t,\hat f_{1,t})-L(y_t,\hat f_{2,t}).

Then model 2 has lower average loss when dˉ>0\bar d>0. The Diebold–Mariano test standardises dˉ\bar d by an estimate of the long-run variance of dtd_t:

DM=dˉS^d/P,DM=\frac{\bar d}{\sqrt{\hat S_d/P}},

where PP is the number of forecast comparisons. Multi-step and overlapping forecasts require serial-dependence adjustment. A 2026 extension develops joint comparison across multiple horizons rather than selecting one favourable horizon after inspection.

Giacomini and White ask a conditional question: does relative performance vary with the information state? This is often more useful than one full-sample winner when recessions and crises matter.

R laboratory: mean forecasts and tail calibration

R

HAC forecast comparison and regime-sensitive VaR coverage

Idle

A positive DM statistic favours the AR forecast under squared loss in this simulation. For VaR, inspect both regimes: overall coverage can conceal too many exceptions in volatile periods and too few in calm periods.

Tail-risk evaluation

For VaR, test at least:

  • unconditional coverage: is the exception frequency close to pp?
  • independence: do exceptions cluster?
  • conditional coverage: are both frequency and dynamics acceptable?

Expected shortfall cannot be validated by counting a single threshold alone. Joint scoring and regression-based tests use both VaR and ES; Fissler, Ziegel, and Gneiting provide a foundation for comparative backtesting.

Finance versus economics

Design elementFinanceEconomics
origintrade/rebalance timestamprelease date or policy meeting
targetreturn, volatility, quantile, portfolio lossgrowth, inflation, unemployment, recession
real-world constraintcost, turnover, liquidity, capacitypublication lag, revision, institutional forecast cycle
benchmarkhistorical mean, random walk, implied measureAR, no-change, survey, official benchmark
stress analysiscrises, volatility regimes, market closuresrecessions, policy regimes, revision episodes
preferred reportstatistical loss plus economic valuereal-time accuracy plus decision/structural limits

What not to conclude

  • A lower RMSE does not imply a profitable strategy.
  • Correct unconditional VaR coverage does not imply independent exceptions.
  • A forecast winner on revised data need not have won in real time.
  • A forecast comparison does not identify a causal mechanism.
  • One favourable horizon among many is not confirmatory evidence unless multiplicity was handled.

Practice

  1. Why must two models be scored on the same origins?
  2. What does dˉ>0\bar d>0 mean under the stated definition?
  3. When should a rolling window be preferred to an expanding window?
Answers
  1. Otherwise differences can reflect unequal evaluation periods rather than forecast quality.
  2. Model 2 has lower average stated loss.
  3. When parameter adaptation is part of the prior design and discarding old regimes is substantively defensible.

Next: Integrated R Laboratory.

Copyright © 2026