Temporal Predictive Multiplicity: Equally Accurate Time Series Models Yield Different Forecast Trajectories
Organizations: J.P. Morgan AI Research Imperial College London London, UK · Imperial College London London, UK · J.P. Morgan AI Research London, UK
Abstract
Models with near-identical predictive performance can yield substantially different predictions, a phenomenon known as predictive multiplicity. Prior work has mostly studied this at the level of individual scalar outputs. In time-series forecasting, however, predictions across horizons jointly define a trajectory, and horizon-wise comparisons can hide important differences in predictive behavior. To address this problem, we introduce temporal predictive multiplicity, a framework that characterizes disagreement over complete forecast trajectories among models with near-identical predictive performance. We show that constraining predictive performance alone can still admit a broad range of different trajectories. We further show that constraining multiplicity at individual horizons partially reduces, but does not eliminate, trajectory-level multiplicity. Experiments with 19 neural forecasting architectures on 11 datasets confirm that near-optimal models can exhibit substantial variability in the forecast trajectories they produce, and trajectory-level disagreement is largely unrelated to horizon-wise disagreement. Our framework, therefore, exposes a gap in existing multiplicity studies: models with indistinguishable predictive performance imply fundamentally different temporal trajectories, with consequential downstream effects.
Figures & tables
| Dataset | / | / | / | MASE ∗ | |||||||
| ATM 1D | 1.38 / 0.66 | 1.55 / 0.81 | 0.87 / 0.35 | 100% / 59% | 96% / 54% | 85% / 36% | 100% / 54% | 1.79 / 0.59 | 1.94 / 0.62 | 1.85 / 0.55 | 1.05 |
| ATM 1W | 1.46 / 0.67 | 1.38 / 0.65 | 0.94 / 0.49 | 100% / 55% | 99% / 56% | 85% / 32% | 100% / 58% | 1.75 / 0.71 | 1.67 / 0.61 | 1.68 / 0.59 | 0.93 |
| Bitcoin | 7.00 / 2.99 | 3.66 / 2.08 | 2.01 / 0.88 | 100% / 62% | 99% / 61% | 82% / 42% | 100% / 69% | 5.16 / 2.35 | 9.41 / 3.34 | 7.10 / 2.63 | 2.67 |
| Electricity D. A | 1.56 / 0.62 | 0.47 / 0.33 | 0.21 / 0.15 | 79% / 49% | 83% / 39% | 82% / 43% | 98% / 33% | 1.59 / 0.46 | 2.19 / 0.58 | 1.93 / 0.53 | 0.46 |
| Electricity D. Z | 0.80 / 0.30 | 0.20 / 0.15 | 0.07 / 0.05 | 69% / 50% | 79% / 44% | 77% / 49% | 99% / 40% | 0.62 / 0.22 | 1.17 / 0.32 | 0.97 / 0.24 | 0.24 |
| Electricity Price | 0.95 / 0.45 | 0.40 / 0.29 | 0.18 / 0.11 | 81% / 46% | 72% / 35% | 76% / 38% | 96% / 30% | 0.98 / 0.34 | 1.29 / 0.48 | 1.24 / 0.37 | 0.82 |
| Dataset | Pointwise | Horizon-Wise | ||||||||||||
| ATM 1D | 0.98 / 0.98 | 0.58 / 0.75 | 0.35 / 0.37 | 0.15 / 0.28 | 0.24 / 0.61 | 0.05 / 0.42 | 0.07 / 0.24 | 0.98 / 0.98 | 0.58 / 0.75 | 0.35 / 0.37 | 0.15 / 0.28 | 0.24 / 0.61 | 0.05 / 0.42 | 0.07 / 0.24 |
| ATM 1W | 0.99 / 0.99 | 0.56 / 0.70 | 0.39 / 0.47 | 0.13 / 0.18 | 0.17 / 0.40 | 0.04 / 0.24 | 0.14 / 0.20 | 0.99 / 0.99 | 0.56 / 0.70 | 0.39 / 0.47 | 0.13 / 0.18 | 0.17 / 0.40 | 0.04 / 0.24 | 0.14 / 0.20 |
| Bitcoin | 0.99 / 1.00 | 0.61 / 0.69 | 0.43 / 0.49 | -0.02 / 0.19 | -0.01 / 0.32 | -0.05 / 0.26 | 0.02 / 0.14 | 0.96 / 0.98 | 0.60 / 0.67 | 0.41 / 0.48 | -0.03 / 0.17 | -0.03 / 0.30 | -0.05 / 0.25 | -0.01 / 0.13 |
| Electricity D. A | 0.99 / 0.99 | 0.46 / 0.66 | 0.16 / 0.36 | -0.03 / 0.26 | -0.00 / 0.64 | -0.08 / 0.49 | 0.05 / 0.36 | 0.96 / 0.97 | 0.47 / 0.65 | 0.16 / 0.36 | -0.03 / 0.26 | -0.03 / 0.63 | -0.10 / 0.48 | 0.04 / 0.35 |
| Electricity D. Z | 0.99 / 0.99 | 0.23 / 0.52 | 0.09 / 0.28 | -0.08 / 0.23 | 0.07 / 0.52 | -0.05 / 0.38 | 0.10 / 0.37 | 0.98 / 0.99 | 0.24 / 0.52 | 0.09 / 0.28 | -0.07 / 0.23 | 0.07 / 0.51 | -0.06 / 0.38 | 0.10 / 0.37 |
| Dataset | Extremes Value | Extremes Location | Increment Direction | ||||
| Contested Cells | Minority Share | ||||||
| ATM 1D | 1.91 (6.22) | 1.43 (5.40) | 18.7% (85.7%) | 48.3% (85.7%) | 51.0% | 9.2% | 55.8 (159) |
| ATM 1W | 1.83 (6.82) | 1.56 (8.17) | 68.3% (75.0%) | 70.7% (75.0%) | 89.8% | 21.8% | 69.2 (153) |
| Bitcoin | 2.83 (7.35) | 2.48 (9.21) | 84.7% (85.7%) | 85.2% (85.7%) | 100% | 28.7% | 101 (164) |
| Electricity D. A | 5.44 (39.4) | 3.13 (17.1) | 43.9% (97.9%) | 28.2% (97.9%) | 60.9% | 10.3% | 34.6 (143) |
| Electricity D. Z | 4.18 (20.9) | 2.19 (7.52) | 30.3% (99.0%) | 17.7% (99.0%) | 70.1% | 13.3% | 17.2 (89.3) |
Appendix figures & tables15 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Domain | Source | License | Distribution Channel |
| UK ATM Withdrawals - Daily | finance | Crone (2008) ; Godahewa et al. (2021) | CC BY 4.0 | GluonTS ( Alexandrov et al., 2020 ) |
| UK ATM Withdrawals - Weekly | finance | Crone (2008) ; Godahewa et al. (2021) | CC BY 4.0 | GluonTS ( Alexandrov et al., 2020 ) |
| Bitcoin Price | finance | Godahewa et al. (2021) | CC BY 4.0 | GIFT-Eval ( Aksu et al., 2024 ) |
| Australian Electricity Demand | energy | AEMO () ; Godahewa et al. (2021) | CC BY 4.0 | GluonTS ( Alexandrov et al., 2020 ) |
| Zurich Electricity Consumption | energy | Stadt-Zürich () | CC0 Public Domain | Darts ( Herzen et al., 2022 ) |
| Hourly Energy Pricing - Spain | energy | Jhana (2019) | CC0 Public Domain | Darts ( Herzen et al., 2022 ) |
| Dataset | Frequency | Variables | Targets | Timestamps ( ) | Input Size † | Horizon | Seasonality | Poolable ∗ |
| UK ATM Withdrawals - Daily | D | 108 | 108 | 791 | 28 (4W) / 56 (8W) | 7 (1W) | 7 (1W) | Yes |
| UK ATM Withdrawals - Weekly | W | 108 | 108 | 113 | 16 (16W) / 26 (26W) | 4 (4W) | 52 (52W) | Only |
| Bitcoin Price | D | 18 | 1 | 2629 | 28 (4W) / 56 (8W) | 7 (1W) | – | No |
| Australian Electricity Demand | 30min | 5 | 5 | 230736 | 336 (1W) | 48 (1D) | 48 (1D), 336 (1W), 17,520 (52W) | Yes |
| Zurich Electricity Consumption | 15min | 10 | 2 | 268705 | 672 (1W) | 96 (1D) | 96 (1D), 672 (1W), 35,040 (52W) | No |
| Hourly Energy Pricing - Spain | h | 20 | 1 | 35064 | 168 (1W) | 24 (1D) | 24 (1D), 168 (1W), 8,760 (52W) | No |
| Dataset | Length | Samples | Samples ∗ | Forecasts | ||||||
| Train | Val & Test | Train | Train † | Val & Test | Train | Train † | Val & Test | Train | Val & Test | |
| UK ATM Withdrawals - Daily | 553 | 119 | 526 / 498 | 531 / 503 | 113 | 56808 / 53784 | 57348 / 54324 | 12204 | 56808 / 53784 | 12204 |
| UK ATM Withdrawals - Weekly | 79 | 17 | – | – | – | 6912 / 5832 | 7128 / 6048 | 1512 | 6912 / 5832 | 1512 |
| Bitcoin Price | 1841 | 394 | 1814 / 1786 | 1819 / 1791 | 388 | – | – | – | 1814 / 1786 | 388 |
| Australian Electricity Demand | 161516 | 34610 | 161181 | 161227 | 34563 | 805905 | 806135 | 172815 | 805905 | 172815 |
| Zurich Electricity Consumption | 188093 | 40306 | 187422 | 187516 | 40211 | – | – | – | 374844 | 80422 |
| Family | Model | Reference |
| Transformer | PatchTST | Nie et al. (2022) |
| iTransformer | Liu et al. (2024) | |
| TimeXer | Wang et al. (2024b) | |
| TFT | Lim et al. (2021) | |
| MLP / Mixer | NHITS | Challu et al. (2023) |
| NBEATSx | Olivares et al. (2023) |
| Dataset | Val | Test | |||||||||||||||
| MAE | RMSE | MASE | RMSSE | MAE | RMSE | MASE | RMSSE | ||||||||||
| Models | Min | Mean | Min | Mean | Min | Mean | Min | Mean | Min | Mean | Min | Mean | Min | Mean | Min | Mean | |
| ATM 1D | 2080 | 4.23 | 4.68 | 6.88 | 7.56 | 1.05 | 1.16 | 1.09 | 1.20 | 3.16 | 3.45 | 4.95 | 5.23 | 0.73 | 0.80 | 0.71 | 0.76 |
| ATM 1W | 1520 | 15.4 | 18.0 | 22.3 | 25.9 | 0.93 | 1.11 | 1.05 | 1.26 | 12.9 | 13.9 | 18.2 | 19.5 | 0.75 | 0.81 | 0.80 | 0.86 |
| Bitcoin | 2800 | 0.06 | 0.07 | 0.08 | 0.10 | 2.67 | 3.26 | 2.58 | 3.03 | 0.05 | 0.06 | 0.07 | 0.09 | 2.35 | 3.01 | 2.16 | 2.76 |
| Electricity D. A (NSW) | 2160 | 171 | 206 | 274 | 323 | 0.38 | 0.45 | 0.41 | 0.48 | 171 | 206 | 274 | 320 | 0.38 | 0.46 | 0.41 | 0.48 |
| Dataset | MASE | MAE | RMSE | RMSSE | ||||||||
| Ratio | Best | Worst | Best | Worst | Best | Worst | Best | Worst | ||||
| ATM 1D | 7 | 2080 | 88 | 0.04 | 1.05 | 1.10 | 4.23 | 4.44 | 6.88 | 7.51 | 1.09 | 1.19 |
| ATM 1W | 4 | 1520 | 81 | 0.05 | 0.93 | 0.98 | 15.4 | 16.2 | 22.3 | 24.5 | 1.05 | 1.16 |
| Bitcoin | 7 | 2800 | 173 | 0.06 | 2.67 | 2.81 | 0.06 | 0.06 | 0.08 | 0.09 | 2.58 | 2.81 |
| Electricity D. A (NSW) | 48 | 2160 | 135 | 0.06 | 0.38 | 0.40 | 171 | 179 | 274 | 298 | 0.41 | 0.44 |
| Electricity D. A (QLD) | 48 | 2160 | 332 | 0.15 | 0.41 | 0.43 | 100 | 105 | 153 | 168 | 0.40 | 0.44 |
| Dataset | Pointwise | Horizon-Wise | ||||||||||||||||
| ATM 1D | 1.85 | 0.55 | 1.00 | 0.67 | 1.00 | 0.41 | 1.79 | 1.94 | 0.59 | 0.62 | 1.00 | 1.00 | 0.70 | 0.76 | 1.00 | 1.00 | 0.44 | 0.49 |
| ATM 1W | 1.68 | 0.59 | 0.99 | 0.72 | 0.98 | 0.48 | 1.75 | 1.67 | 0.71 | 0.61 | 0.99 | 0.99 | 0.76 | 0.75 | 0.98 | 0.98 | 0.55 | 0.51 |
| Bitcoin | 7.10 | 2.63 | 1.00 | 0.79 | 0.98 | 0.62 | 5.16 | 9.41 | 2.35 | 3.34 | 1.00 | 1.00 | 0.77 | 0.85 | 0.93 | 1.00 | 0.59 | 0.69 |
| Electricity D. A (NSW) | 1.38 | 0.35 | 1.00 | 0.78 | 1.00 | 0.58 | 0.76 | 1.64 | 0.24 | 0.42 | 1.00 | 1.00 | 0.76 | 0.83 | 1.00 | 1.00 | 0.53 | 0.67 |
| Electricity D. A (QLD) | 1.93 | 0.48 | 1.00 | 0.85 | 1.00 | 0.70 | 1.37 | 2.19 | 0.45 | 0.56 | 1.00 | 1.00 | 0.85 | 0.87 | 1.00 | 1.00 | 0.70 | 0.75 |
| Dataset | |||||||
| ATM 1D | 1.38 / 0.66 | 1.55 / 0.81 | 0.87 / 0.35 | 99.7% / 58.9% | 95.9% / 54.1% | 85.1% / 36.0% | 99.9% / 54.1% |
| ATM 1W | 1.46 / 0.67 | 1.38 / 0.65 | 0.94 / 0.49 | 99.9% / 55.3% | 99.4% / 56.0% | 85.4% / 31.6% | 100% / 57.6% |
| Bitcoin | 7.00 / 2.99 | 3.66 / 2.08 | 2.01 / 0.88 | 99.9% / 61.7% | 99.4% / 61.1% | 81.5% / 41.6% | 100% / 68.9% |
| Electricity D. A (NSW) | 1.17 / 0.42 | 0.32 / 0.23 | 0.14 / 0.09 | 75.4% / 48.5% | 81.1% / 39.2% | 78.9% / 42.9% | 97.9% / 32.7% |
| Electricity D. A (QLD) | 1.55 / 0.57 | 0.41 / 0.28 | 0.19 / 0.13 | 76.6% / 48.9% | 83.3% / 38.6% | 81.7% / 43.3% | 98.3% / 33.1% |
| Electricity D. A (SA) | 1.56 / 0.62 | 0.47 / 0.33 | 0.21 / 0.15 | 73.4% / 47.4% | 75.1% / 33.9% | 76.8% / 41.8% | 94.9% / 29.0% |
| Dataset | |||||||
| ATM 1D | 100% / 62% | 100% / 76% | 90% / 16% | 100% / 53% | 100% / 58% | 100% / 23% | 100% / 56% |
| ATM 1W | 98% / 63% | 98% / 61% | 90% / 44% | 100% / 58% | 100% / 58% | 100% / 23% | 100% / 41% |
| Bitcoin | 99% / 75% | 96% / 70% | 73% / 24% | 100% / 62% | 100% / 65% | 100% / 34% | 100% / 79% |
| Electricity D. A (NSW) | 100% / 95% | 98% / 67% | 13% / 2% | 100% / 42% | 95% / 27% | 99% / 30% | 98% / 29% |
| Electricity D. A (QLD) | 100% / 99% | 100% / 77% | 31% / 10% | 100% / 44% | 96% / 29% | 99% / 32% | 98% / 30% |
| Electricity D. A (SA) | 100% / 94% | 99% / 71% | 20% / 7% | 100% / 37% | 88% / 22% | 97% / 28% | 95% / 25% |
| Dataset | Pointwise | Horizon-Wise | ||||||||||||
| ATM 1D | 0.98 / 0.98 | 0.58 / 0.75 | 0.35 / 0.37 | 0.15 / 0.28 | 0.24 / 0.61 | 0.05 / 0.42 | 0.07 / 0.24 | 0.98 / 0.98 | 0.58 / 0.75 | 0.35 / 0.37 | 0.15 / 0.28 | 0.24 / 0.61 | 0.05 / 0.42 | 0.07 / 0.24 |
| ATM 1W | 0.99 / 0.99 | 0.56 / 0.70 | 0.39 / 0.47 | 0.13 / 0.18 | 0.17 / 0.40 | 0.04 / 0.24 | 0.14 / 0.20 | 0.99 / 0.99 | 0.56 / 0.70 | 0.39 / 0.47 | 0.13 / 0.18 | 0.17 / 0.40 | 0.04 / 0.24 | 0.14 / 0.20 |
| Bitcoin | 0.99 / 1.00 | 0.61 / 0.69 | 0.43 / 0.49 | -0.02 / 0.19 | -0.01 / 0.32 | -0.05 / 0.26 | 0.02 / 0.14 | 0.96 / 0.98 | 0.60 / 0.67 | 0.41 / 0.48 | -0.03 / 0.17 | -0.03 / 0.30 | -0.05 / 0.25 | -0.01 / 0.13 |
| Electricity D. A (NSW) | 0.99 / 0.99 | 0.51 / 0.66 | 0.16 / 0.36 | -0.01 / 0.16 | 0.04 / 0.63 | -0.08 / 0.46 | 0.08 / 0.33 | 0.97 / 0.97 | 0.52 / 0.65 | 0.16 / 0.36 | -0.01 / 0.16 | 0.03 / 0.61 | -0.09 / 0.45 | 0.07 / 0.32 |
| Electricity D. A (QLD) | 0.99 / 0.99 | 0.53 / 0.60 | 0.19 / 0.33 | -0.01 / 0.23 | 0.04 / 0.63 | -0.05 / 0.44 | 0.08 / 0.36 | 0.97 / 0.97 | 0.54 / 0.59 | 0.19 / 0.33 | -0.01 / 0.23 | 0.03 / 0.63 | -0.06 / 0.44 | 0.07 / 0.35 |
| Statistic | Multiplicity-Aware not invariant to per-model cell permutations | Horizon-Aware not invariant to cell permutations | Trajectory-Aware not invariant to row permutations |
| Loss | |||
| Pointwise Multiplicity | ✓ | ||
| Horizon-wise Multiplicity | ✓ | ✓ | |
| Temporal Multiplicity | ✓ | ✓ | ✓ |
| Temporal Statistic | only | pointwise | horizon-wise |
| Pointwise | |||
| Magnitude | |||
| Increment | |||
| Volatility | |||
| Direction | free | free | free |
| Shape | free | free | free |
| Dataset | only | ||||||
| ATM 1D | 6.54 (0.0%) | 6.20 (0.0%) | 3.52 (0.0%) | 100% | 100% | 97.6% | 100% |
| ATM 1W | 6.66 (0.1%) | 5.47 (0.1%) | 3.62 (0.1%) | 100% | 100% | 99.4% | 100% |
| Bitcoin | 19.7 (0.3%) | 11.1 (0.1%) | 7.39 (0.3%) | 100% | 100% | 95.4% | 100% |
| Electricity D. A | 7.86 (0.0%) | 1.66 (0.0%) | 0.75 (0.0%) | 90.2% | 98.8% | 95.0% | 100% |
| Electricity D. Z | 3.73 (0.0%) | 0.72 (0.0%) | 0.31 (0.0%) | 83.2% | 98.4% | 93.2% | 100% |
| Dataset | |||||||
| ATM 1D | 90.4% / 100% | 49.8% / 69.2% | 41.5% / 47.7% | 100% / 100% | 100% / 100% | 97.6% / 97.6% | 100% / 100% |
| ATM 1W | 99.6% / 100% | 62.7% / 74.8% | 54.4% / 65.1% | 100% / 100% | 100% / 100% | 99.4% / 99.4% | 100% / 100% |
| Bitcoin | 99.3% / 100% | 53.4% / 71.0% | 32.8% / 44.8% | 100% / 100% | 100% / 100% | 95.4% / 95.4% | 100% / 100% |
| Electricity D. A | 85.5% / 99.1% | 18.1% / 23.5% | 7.7% / 9.9% | 90.2% / 90.2% | 98.8% / 98.8% | 95.0% / 95.0% | 100% / 100% |
| Electricity D. Z | 81.5% / 95.4% | 11.5% / 14.0% | 4.8% / 6.5% | 83.2% / 83.2% | 98.4% / 98.4% | 93.2% / 93.2% | 100% / 100% |
| Electricity Price | 84.7% / 99.1% | 26.3% / 31.9% | 11.8% / 14.5% | 95.7% / 95.7% | 96.5% / 96.5% | 92.4% / 92.4% | 100% / 100% |