Downside-Controlled Online Forecast Combination under Delayed and Revised Outcomes
Organizations: Graduate School of Information, Yonsei University, Seoul, 03722, South Korea
Abstract
Post-hoc correction adjusts a forecaster that cannot be retrained, such as a foundation model, but a correction fitted where errors are stable can hurt where they shift. We aim for downside control: not much worse than the starting forecast. We combine the frozen forecaster, a static corrector and an online corrector on the simplex, using only losses that mature after the horizon. Across seven benchmarks and four base models, two of them foundation models, the worst deterioration over 28 pairs at the main horizon is 0.15% and gains reach 11.5%. On day-ahead load for seven European bidding zones it lowers mean MSE in all seven zones, while single correctors raise mean MSE by up to 102% where the published forecast is most accurate. Three empirical conditions on expert speed, stream length and outcome alignment, each fixed by a documented failure, delimit its scope. Learning from the provisional outcome improves four zones on the settled one; learning on the settled outcome restores all seven.
Figures & tables
| Region | Decides | Never touches |
| Training split | Base model and corrector parameters | Gate weights, evaluation |
| Held-out fit region | Online corrector’s initial fit | Gate weights, evaluation |
| Held-out warm slice | Gate’s initial weights, by replaying the update | Corrector parameters, evaluation |
| Held-out early-stopping tail | Correctors’ stopping epoch | Gate weights, evaluation |
| Test stream | Gate and online-corrector state, from matured losses only | Any parameter or threshold |
| Base model | Dataset | Static | Online | Held-out | Gate, | Gate, | |||||
| DLinear | ETTh1 | ||||||||||
| ETTh2 | |||||||||||
| ETTm1 | |||||||||||
| ETTm2 | |||||||||||
| Weather | |||||||||||
| ECL | |||||||||||
| Chronos-Bolt | TimesFM | |||||||
| Dataset | Static | Gate, | Static | Gate, | ||||
| ETTh1 | ||||||||
| ETTh2 | ||||||||
| ETTm1 | ||||||||
| ETTm2 | ||||||||
| Weather | ||||||||
| Dataset | TAFAS | PETSA | Gate, | |||
| ETTh1 | ||||||
| ETTh2 | ||||||
| ETTm1 | ||||||
| ETTm2 | ||||||
| Weather | ||||||
| ECL | ||||||
| Block set | Method | Mean rank | Mean | Improved | Worst |
| 28 pairs | Frozen base model | 3.661 | n/a | ||
| Static | 1.893 | 28/28 | |||
| Gate, | 2.661 | 21/28 | |||
| Gate, | 1.786 | 25/28 | |||
| 14 trained | Frozen base model | 4.286 | n/a | ||
| Static | 2.214 | 14/14 |
| Zone | Static | Online | Held-out | Gate, | Gate, | ||||||
| HU | 0.000 | ||||||||||
| PT | 0.217 | ||||||||||
| HR | 0.494 | ||||||||||
| BE | 0.549 | ||||||||||
| DK | 0.637 | ||||||||||
| DE | 0.003 | ||||||||||
| Gate, adaptive | Gate, split | TSO, adaptive | |||||||
| Zone | Cov | Width | Winkler | Cov | Width | Winkler | Cov | Width | Winkler |
| HU | 0.941 | 0.796 | 0.922 | 0.964 | 0.892 | 0.971 | 0.883 | 0.914 | 1.138 |
| PT | 0.792 | 0.784 | 1.449 | 0.680 | 0.642 | 1.841 | 0.789 | 0.791 | 1.467 |
| HR | 0.888 | 0.489 | 0.695 | 0.888 | 0.497 | 0.699 | 0.887 | 0.490 | 0.696 |
| BE | 0.896 | 0.613 | 0.789 | 0.915 | 0.653 | 0.795 | 0.896 | 0.613 | 0.790 |
| DK | 0.888 | 0.229 | 0.367 | 0.853 | 0.205 | 0.383 | 0.888 | 0.229 | 0.367 |
| Zone | Revision (%) | L2 | L3, | L3, | Scalar | Static, L2 | ||||
| HU | 0.59 | |||||||||
| PT | 2.22 | |||||||||
| HR | 2.60 | |||||||||
| BE | 3.18 | |||||||||
| DK | 3.87 | |||||||||
| DE | 5.93 | |||||||||
Appendix figures & tables23 assets
Supplementary material from the paper’s appendix.
Appendix
| Term | Meaning |
|---|---|
| Frozen | A forecaster its user cannot retrain; its parameters are never updated in this study |
| Base model | The frozen forecaster the correction layer wraps, written ; on the load data it is the forecast of the transmission system operator (TSO) |
| Corrector | A module that alters the base model’s forecast: the static corrector (a trust-region adapter fitted once on the training split), the online corrector (updated from matured errors during the stream) and, outside the library, the held-out corrector and the intercept corrections (running means of matured errors, plain or exponentially weighted) |
| Expert | A forecast the gate holds weight on: the base model , the static corrector and the online corrector ; called a corrector ( , ) when its mechanism rather than its weight is discussed |
| Gate, Gate | The rule that sets the weight on each expert from the losses that expert has already accrued; is the number of experts, the reported configuration |
| Combination, gated combination | The single forecast the gate’s weights produce; the row labelled Gate in every table |
| Dataset | Channels | Train | Val | Test | Freq. |
| ETTh1/h2 | 7 | 8,640 | 2,880 | 2,880 | Hourly |
| ETTm1/m2 | 7 | 34,560 | 11,520 | 11,520 | 15-min |
| Weather | 21 | 36,887 | 5,270 | 10,539 | 10-min |
| ECL | 321 | 18,412 | 2,632 | 5,260 | Hourly |
| Exchange | 8 | 5,311 | 760 | 1,517 | Daily |
| ILI | 7 | 966 rows, Section S10 of the supplement | Weekly | ||
| Item | Setting |
|---|---|
| Form | |
| Trust region | via tanh |
| Radius | on ETT, otherwise |
| Optimizer | Adam, learning rate |
| Network | Depth 2, width 128 |
| Fitted on | Training split, base model frozen |
| Method | Fitted on | Updates in the stream | In the library |
|---|---|---|---|
| Frozen base model | Not fitted here | No | |
| Static corrector | Training split | No | |
| Online corrector | Held-out fit region | Yes | |
| Held-out corrector | Held-out fit region | No | No |
| Gate, | Carries and | Weights only | |
| Gate, | Carries , and | Weights only |
| Dataset | Ljung–Box (lag 24), max | Lag-1 | Ridge |
|---|---|---|---|
| ETTh1 | 0.089 | ||
| ETTh2 | 0.108 | ||
| ETTm1 | 0.225 | ||
| ETTm2 | 0.109 | ||
| Weather | 0.675 |
| Dataset | MSE | Ceiling, 50 steps | Per-run ceiling, 2,000 steps | Mean | SD | , 2,000 steps | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| ETTh1 | 0.6080 | % | 26.55% | 20.49% | 19.50% | 23.92% | 20.76% | 22.24% | 2.92 | ||
| ETTh2 | 0.2998 | % | 4.32% | 6.58% | 2.66% | 6.48% | 6.94% | 5.40% | 1.84 | ||
| ETTm1 | 0.3272 | % | 0.95% | 8.32% | 5.93% | 0.42% | 0.07% | 3.14% | 3.75 | ||
| ETTm2 | 0.1055 | % | 0.01% | 0.01% | 0.16% | 1.17% | 1.97% | 0.66% | 0.88 | ||
| Weather | 0.2715 | % | 8.48% | 8.99% | 14.45% | 1.56% | 0.90% | 6.88% | 5.67 | ||
| Method | Mean | Worst pair | Worst cell | Improved |
|---|---|---|---|---|
| Static corrector | 28/28 | |||
| Equal weights | 24/28 | |||
| Intercept correction | 0/28 | |||
| Exponentially weighted errors | 0/28 | |||
| Gate, | 21/28 | |||
| Gate, | 25/28 |
| Zone | Static | Equal | Intercept | EW errors | Gate, | |||
| HU | ||||||||
| DK | ||||||||
| HR | ||||||||
| BE | ||||||||
| DE | ||||||||
| PT | ||||||||
| Dataset | Chronos-Bolt | TimesFM |
|---|---|---|
| ETTh1 | ||
| ETTh2 | ||
| ETTm1 | ||
| ETTm2 | ||
| Weather | ||
| ECL |
| Dataset | DLinear | PatchTST | Chronos-Bolt | TimesFM |
|---|---|---|---|---|
| ETTh1 | Online (0.621) | Static (0.467) | Online (0.443) | Static (0.485) |
| ETTh2 | Online (0.689) | Static (0.548) | Static (0.484) | Static (0.419) |
| ETTm1 | Static (0.623) | Static (0.435) | Online (0.958) | Online (0.470) |
| ETTm2 | Online (0.986) | Online (0.962) | Online (0.964) | Online (0.998) |
| Weather | Static (0.898) | Static (0.759) | Static (0.741) | Static (0.629) |
| ECL | Static (0.956) | Static (0.915) | Static (0.880) | Static (0.841) |
| MASE | RMSSE | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Base model | Dataset | Frozen | Static | Gate, | Frozen | Static | Gate, | |||||||
| DLinear | ETTh1 | 24 | ||||||||||||
| ETTh2 | 24 | |||||||||||||
| ETTm1 | 96 | |||||||||||||
| ETTm2 | 96 | |||||||||||||
| Weather | 144 | |||||||||||||
| Dataset | Base model | MSE | Static | Held-out | Gate, | |||
|---|---|---|---|---|---|---|---|---|
| ETTh1 | Seasonal naive | 0.5122 | ||||||
| Smoothing | 1.1014 | |||||||
| ETTh2 | Seasonal naive | 0.3905 | ||||||
| Smoothing | 0.4059 | |||||||
| Weather | Seasonal naive | 0.3167 | ||||||
| Smoothing | 0.3380 | |||||||
| Constant | Grid point | MSE change (%) | |
|---|---|---|---|
| Trust-region radius | |||
| (reported) | |||
| Warm slice length | |||
| (reported) | |||
| Native quantiles | Adaptive tracker | |||||
| Dataset | Cov | Width | Pinball | Cov | Width | Pinball |
| ETTh1 | 0.759 | 1.066 | 0.152 | 0.817 | 1.226 | 0.159 |
| ETTh2 | 0.739 | 0.833 | 0.132 | 0.764 | 0.938 | 0.137 |
| ETTm1 | 0.746 | 0.902 | 0.137 | 0.797 | 1.021 | 0.141 |
| ETTm2 | 0.757 | 0.669 | 0.100 | 0.775 | 0.808 | 0.105 |
| Weather | 0.741 | 0.576 | 0.088 | 0.776 | 0.693 | 0.090 |
| Zone | Gate, adaptive | Gate, split | TSO, adaptive | ||
|---|---|---|---|---|---|
| HU | 0.06981 | 0.09910 | |||
| PT | 0.10313 | 0.09871 | |||
| HR | 0.04711 | 0.04716 | |||
| BE | 0.05794 | 0.05777 | |||
| DK | 0.02308 | 0.02286 | |||
| DE | 0.07361 | 0.08553 | |||
| Zone | Verdict | Miss prov. | Miss settled | Defect h |
|---|---|---|---|---|
| DE, HU, PT, HR, DK, IT, BE | Accept | 0 | ||
| NL | Defect | 0.0000 | 0.0001 | 96 |
| CH | Defect | 0.0000 | 0.0000 | 20 |
| ES, SK, FR, RO, FI, LV, CZ, ME | Gap | |||
| AT, SI, PL, GR, NO, SE | Missing settled | |||
| GB_GBN, DK_1 | Missing settled | 0.0000 |
| Held-out | Warm slice | Tail | Fit region | |
|---|---|---|---|---|
| , six zones | 297 | 201 | 30 | 66 |
| , Belgium | 295 | 201 | 30 | 64 |
| , six zones | 297 | 231 | 30 | 36 |
| , Belgium | 295 | 231 | 30 | 34 |
| Zone | Mean settled/prov. | Revision (%) | MAPE vs prov. | zMSE vs prov. | zMSE vs settled |
|---|---|---|---|---|---|
| DE | 1.0573 | 5.930 | 3.104 | 0.0508 | 0.2023 |
| HU | 0.9942 | 0.592 | 3.846 | 0.0870 | 0.0722 |
| PT | 1.0003 | 2.225 | 2.773 | 0.0497 | 0.0990 |
| HR | 1.0235 | 2.598 | 2.088 | 0.0226 | 0.0795 |
| DK | 1.0352 | 3.870 | 1.017 | 0.0089 | 0.0608 |
| IT | 1.0940 | 9.401 | 1.973 | 0.0135 | 0.1576 |
| Split, , | Slice | Updates | Warm | Uniform | Uniform warm | |||
|---|---|---|---|---|---|---|---|---|
| 6:2:2, 36, 24 | 77 | 53 | ||||||
| 6:2:2, 36, 36 | 71 | 35 | ||||||
| 6:2:2, 36, 48 | 66 | 18 | ||||||
| 6:2:2, 104, 24 | 77 | 53 | ||||||
| 7:1:2, 36, 24 | 33 | 9 | ||||||
| Dataset | Base model | Held-out | Gate, | |
|---|---|---|---|---|
| Horizon 192 | ||||
| Exchange | DLinear | |||
| ETTh2 | DLinear | |||
| ETTh2 | PatchTST | |||
| ETTh1 | PatchTST | |||
| ETTm1 | DLinear | |||
| Expert learning rate | Expert alone | Four-expert gate |
|---|---|---|
| 0.005 (published default) | ||
| 0.0005 | ||
| 0.00005 |
| Rule | Mean | vs gate | Better | Worst |
| A. Benchmarks, 36 pairs | ||||
| Hedge (the gate) | – | – | ||
| Fixed-share, | 19/36 | |||
| Fixed-share, | 6/36 | |||
| Bernstein aggregation | 17/36 | |||
| B. Load, 21 zone-protocol cells | ||||
| Block set | Pair-block | Dataset-block | Gate rank | CD | Separations |
|---|---|---|---|---|---|
| All base models | 1.571 | 1.773 | gate vs base model | ||
| Trained base models | 1.857 | 2.306 | gate vs base model | ||
| DLinear only | 3.143 | 3.405 | none |