Correction-space Cross-variate Interaction for Test-time Adaptation in Time Series Forecasting
Organizations: Eindhoven University of Technology Eindhoven, The Netherlands
Abstract
Test-time adaptation (TTA) is a promising paradigm for handling distribution shift in time-series forecasting (TSF), where models adapt at inference time, often leveraging delayed observed data to refine predictions. In the multivariate setting, distribution shifts often exhibit cross-variate dependencies, yet existing TSF-TTA methods adapt each variate independently and ignore this cross-variate structure. Exploiting such structure motivates cross-variate interaction, but coupling variates through backbone predictions introduces direct pathways for mixing uncorrected errors across variates, a concern under the delayed supervision of TSF-TTA. We identify the \emph{interaction space} as a key design choice, and show that acting on adapter corrections that refine backbone outputs, the \emph{correction space}, rather than on the predictions themselves, avoids directly propagating backbone errors across variates. We build on this to propose \textsc{CoRe} (\textsc{Co}rrection-space Interaction \textsc{Re}finement), realizing correction-space interaction through (i) Shared-anchor Correction Refinement (SCR), which combines each variate's correction with a shared anchor through a parameter-efficient bottleneck, and (ii) input-conditioned spectral gating, which adaptively modulates the refinement from the current input window. Across seven backbones, six datasets, and four prediction horizons, \textsc{CoRe} reduces MSE by 25.82% on average over backbones and 10.57% over the state-of-the-art TSF-TTA method, with stronger gains at medium-to-long horizons and modest computational overhead. Data and code are available at: https://github.com/yyddou/CoReTTA
Figures & tables
| Method | DLinear | PatchTST | MICN | Avg. MSE | vs. COSA |
| COSA | 0.2981 | 0.2927 | 0.3241 | 0.3050 | – |
| +SCR (no anchor; per-variate bottleneck) | 0.2760 | 0.2721 | 0.3018 | 0.2833 | |
| +SCR (no anchor/bottleneck; full mixing) | 0.2745 | 0.2706 | 0.3044 | 0.2832 | |
| +SCR (loss-trend gate) | 0.2712 | 0.2657 | 0.2963 | 0.2777 | |
| +SCR (fixed gate, ) | 0.2703 | 0.2651 | 0.2954 | 0.2769 | |
| CoRe | 0.2675 | 0.2646 | 0.2942 | 0.2754 |
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| Backbone | Dataset | Avg. Gain | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TAFAS | +CoRe | TAFAS | + CoRe | TAFAS | + CoRe | TAFAS | + CoRe | |||
| DLinear | ETTh1 | 0.4604 | 0.4604 | 0.5099 | 0.5020 | 0.5622 | 0.5515 | 0.6685 | 0.6548 | 1.83% |
| ETTh2 | 0.2302 | 0.2039 | 0.2836 | 0.2710 | 0.3193 | 0.3229 | 0.3939 | 0.4140 | 2.41% | |
| ETTm1 | 0.3488 | 0.3342 | 0.4159 | 0.3924 | 0.4787 | 0.4681 | 0.5495 | 0.5539 | 2.81% | |
| ETTm2 | 0.1588 | 0.1505 | 0.1927 | 0.1841 | 0.2337 | 0.2298 | 0.3053 | 0.3008 | 3.21% | |
| Weather | 0.1828 | 0.1531 | 0.2219 | 0.2136 | 0.2695 | 0.2454 | 0.3550 | 0.3164 | 9.95% | |
| ETTh1 | ETTh2 | ETTm1 | ETTm2 | |||||
|---|---|---|---|---|---|---|---|---|
| Backbone | w/o SCR | CoRe -MLP | w/o SCR | CoRe -MLP | w/o SCR | CoRe -MLP | w/o SCR | CoRe -MLP |
| DLinear | 0.4842 | 0.4767 | 0.2519 | 0.2378 | 0.5285 | 0.5101 | 0.2096 | 0.1949 |
| FreTS | 0.4722 | 0.4681 | 0.2556 | 0.2439 | 0.5243 | 0.4957 | 0.2056 | 0.1923 |
| iTransformer | 0.4685 | 0.4673 | 0.2710 | 0.2605 | 0.5337 | 0.5145 | 0.2296 | 0.2131 |
| PatchTST | 0.4595 | 0.4526 | 0.2534 | 0.2494 | 0.5265 | 0.5038 | 0.2121 | 0.1980 |
| OLS | 0.4706 | 0.4661 | 0.2503 | 0.2383 | 0.5270 | 0.5087 | 0.2086 | 0.1966 |
| Backbone | CoRe vs. PETSA |
|---|---|
| DLinear | |
| FreTS | |
| iTransformer | |
| MICN | |
| OLS | |
| PatchTST |
| DLinear | FreTS | OLS | iTransformer | MICN | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DynaTTA | COSA | CoRe | DynaTTA | COSA | CoRe | DynaTTA | COSA | CoRe | DynaTTA | COSA | CoRe | DynaTTA | COSA | CoRe | ||
| ETTh1 | 96 | 0.4708 | 0.4922 | 0.4916 | 0.4511 | 0.4623 | 0.4625 | 0.4486 | 0.4729 | 0.4723 | 0.4509 | 0.4638 | 0.4545 | 0.5804 | 0.5837 | 0.5863 |
| 192 | 0.5321 | 0.5371 | 0.4961 | 0.5138 | 0.5084 | 0.4692 | 0.5082 | 0.5173 | 0.4763 | 0.5156 | 0.5024 | 0.4589 | 0.6032 | 0.5802 | 0.5203 | |
| 336 | 0.5792 | 0.5208 | 0.4722 | 0.5838 | 0.4970 | 0.4596 | 0.5626 | 0.5041 | 0.4568 | 0.6052 | 0.4956 | 0.4661 | 0.7037 | 0.5889 | 0.5386 | |
| 720 | 0.7047 | 0.5433 | 0.4891 | 0.7086 | 0.5616 | 0.5052 | 0.6933 | 0.5443 | 0.4886 | 0.7118 | 0.5381 | 0.5055 | 0.8282 | 0.6177 | 0.5591 | |
| ETTh2 | 96 | 0.2338 | 0.2552 | 0.2426 | 0.2397 | 0.2560 | 0.2462 | 0.2325 | 0.2443 | 0.2389 | 0.2767 | 0.3050 | 0.2803 | 0.2612 | 0.2538 | 0.2476 |
| Dataset | RevIN | FAN | CoRe | |
|---|---|---|---|---|
| ETTh1 | 96 | 0.4591 | 0.4620 | 0.4916 |
| 192 | 0.5121 | 0.5159 | 0.4961 | |
| 336 | 0.5587 | 0.5427 | 0.4722 | |
| 720 | 0.7063 | 0.6593 | 0.4891 | |
| ETTh2 | 96 | 0.2302 | 0.2512 | 0.2426 |
| 192 | 0.2834 | 0.2973 | 0.2275 |
| Dataset | Base (TimeXer) | TAFAS | COSA | CoRe | PETSA | |
|---|---|---|---|---|---|---|
| ETTh1 | 96 | 0.4301 | 0.4304 0.0004 | 0.4407 0.0001 | 0.4367 0.0019 | 0.4349 0.0002 |
| 192 | 0.4895 | 0.4996 0.0001 | 0.4867 0.0004 | 0.4513 0.0049 | 0.4922 0.0003 | |
| 336 | 0.5605 | 0.5795 0.0113 | 0.4776 0.0003 | 0.4329 0.0025 | 0.5544 0.0005 | |
| 720 | 0.6931 | 0.6810 0.0010 | 0.5195 0.0001 | 0.4813 0.0046 | 0.6698 0.0014 | |
| ETTh2 | 96 | 0.2367 | 0.2317 0.0001 | 0.2492 0.0008 | 0.2469 0.0034 | 0.2367 0.0003 |
| 192 | 0.3000 | 0.3021 0.0001 | 0.2907 0.0035 | 0.2420 0.0039 | 0.2986 0.0002 |
| Family | Backbones | MSE reduction vs. COSA |
|---|---|---|
| CI | DLinear, FreTS, OLS, PatchTST | 10.87% |
| CD | iTransformer, Informer, MICN | 10.18% |
| Dense | SCR | SCR | |
| Avg params | 339,024 | 9,922 | 16,480 |
| Avg imp. vs. baseline | |||
| Win rate vs. baseline | 128/168 | 162/168 | 147/168 |
| Configuration | avg_imp |
|---|---|
| Mean pooling, | +18.09% |
| Mean pooling, | +18.84% |
| Mean pooling, | +19.66% |
| Mean pooling, | +20.24% |
| Mean pooling, | +25.45% |
| Max pooling, | +19.36% |
| Model | Dataset | Backbone | COSA | CoRe | COSA CoRe | |
|---|---|---|---|---|---|---|
| DLinear | Electricity | 96 | 0.2078 | 0.2024 | 0.1992 | |
| 192 | 0.2081 | 0.1922 | 0.1771 | |||
| 336 | 0.2228 | 0.1947 | 0.1751 | |||
| 720 | 0.2644 | 0.2139 | 0.1926 | |||
| Traffic | 96 | 0.6710 | 0.6685 | 0.6648 | ||
| 192 | 0.6251 | 0.6127 | 0.6031 |
| Method | DLinear | PatchTST | MICN | Avg. MSE | vs. COSA |
| COSA | 0.2981 | 0.2927 | 0.3241 | 0.3050 | – |
| +SCR (no anchor; per-variate bottleneck) | 0.2760 | 0.2721 | 0.3018 | 0.2833 | |
| +SCR (no anchor/bottleneck; full mixing) | 0.2745 | 0.2706 | 0.3044 | 0.2832 | |
| +SCR (loss-trend gate) | 0.2712 | 0.2657 | 0.2963 | 0.2777 | |
| +SCR (fixed gate, ) | 0.2703 | 0.2651 | 0.2954 | 0.2769 | |
| +SCR ( ) | 0.2676 | 0.2638 | 0.2946 | 0.2753 |
| Dataset | Mean | Std | Near zero ( ) | Near init ( ) |
|---|---|---|---|---|
| ETTh1 | ||||
| ETTh2 | ||||
| ETTm1 | ||||
| ETTm2 | ||||
| Exchange | ||||
| Weather |
| vs. default |
|---|
| TAFAS | COSA | CoRe | |||||
| Model | Dataset | ||||||
| DLinear | ETTh1 | ||||||
| ETTh2 | |||||||
| ETTm1 | |||||||
| ETTm2 | |||||||
| Exchange | |||||||
| Dataset | Window | Mean | Shifting (std) | CV | Range | Strong | Weak | |
| ETTh1 | 7 | 168 | 0.222 | 0.266 | 0.919 | 0.771 | 9.5% | 81.0% |
| ETTh2 | 7 | 168 | 0.325 | 0.237 | 0.846 | 0.865 | 4.8% | 57.1% |
| ETTm1 | 7 | 672 | 0.224 | 0.264 | 0.913 | 0.771 | 9.5% | 81.0% |
| ETTm2 | 7 | 672 | 0.325 | 0.234 | 0.845 | 0.872 | 4.8% | 57.1% |
| Weather | 21 | 1008 | 0.296 | 0.180 | 0.736 | 0.637 | 21.0% | 64.3% |
| Exchange Rate † | 8 | 30 | 0.305 | 0.479 | 0.957 | 0.992 | 3.6% | 42.9% |
| Dataset | CV | Cos-sim std | Fixed gate | Spectral gate | Gain |
|---|---|---|---|---|---|
| ETTh1 | |||||
| Exchange | |||||
| ETTm1 | |||||
| ETTm2 | |||||
| ETTh2 | |||||
| Weather |
| Component | COSA(ms) | CoRe (ms) | Overhead(ms) |
|---|---|---|---|
| Backbone prediction | 1.27 | 1.04 | |
| Spectral FFT | - | 1.14 | |
| SCR forward | - | 1.45 | |
| Loss computation | 0.84 | 1.00 | |
| Backward + update | 4.42 | 4.11 | |
| Per adaptation step | 6.28 | 6.76 |