PatchDecomp: Interpretable Patch-Based Time Series Forecasting
Organizations: Mitsubishi Electric Corporation, Japan
Abstract
Time series forecasting, which predicts future values from past observations, plays a central role in many domains and has driven the development of highly accurate neural network models. However, the complexity of these models often limits human understanding of the rationale behind their predictions. We propose PatchDecomp, a neural network-based time series forecasting method that achieves both high accuracy and interpretability. PatchDecomp divides input time series into subsequences (patches) and generates predictions by aggregating the contributions of each patch. This enables clear attribution of each patch, including those from exogenous variables, to the final prediction. Experiments on multiple benchmark datasets demonstrate that PatchDecomp provides predictive performance comparable to recent forecasting methods. Furthermore, we show that the model's explanations not only influence predicted values quantitatively but also offer qualitative interpretability through visualization of patch-wise contributions.
Figures & tables
| PatchDecomp | PatchTST | NBEATSx | NHITS | TFT | DLinear | TSMixer | Autoformer | iTransformer | TiDE | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | ||
| ETTh1 | 96 | 0.362 | 0.412 | 0.405 | 0.436 | 0.658 | 0.550 | 0.703 | 0.555 | 0.610 | 0.519 | 0.380 | 0.424 | 0.435 | 0.459 | 0.513 | 0.497 | 0.432 | 0.459 | 0.356 | 0.408 |
| 192 | 0.383 | 0.427 | 0.415 | 0.443 | 0.730 | 0.582 | 0.758 | 0.583 | 0.648 | 0.544 | 0.404 | 0.442 | 0.465 | 0.477 | 0.507 | 0.489 | 0.491 | 0.495 | 0.418 | 0.450 | |
| 336 | 0.383 | 0.431 | 0.439 | 0.461 | 0.809 | 0.619 | 0.792 | 0.604 | 0.623 | 0.545 | 0.442 | 0.467 | 0.528 | 0.520 | 0.485 | 0.492 | 0.517 | 0.518 | 0.462 | 0.482 | |
| 720 | 0.406 | 0.453 | 0.457 | 0.483 | 0.871 | 0.655 | 0.843 | 0.631 | 0.624 | 0.562 | 0.440 | 0.476 | 0.538 | 0.538 | 0.543 | 0.538 | 0.548 | 0.547 | 0.457 | 0.488 | |
| ETTh2 | 96 | 0.264 | 0.339 | 0.263 | 0.340 | 0.319 | 0.373 | 0.330 | 0.375 | 0.286 | 0.363 | 0.268 | 0.346 | 0.353 | 0.413 | 0.327 | 0.396 | 0.373 | 0.427 | 0.275 | 0.351 |
| PatchDecomp | NBEATSx | NHITS | TFT | TSMixer | TiDE | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | MSE | MAE | |
| NP | 18.32 | 2.26 | 18.31 | 2.27 | 17.86 | 2.22 | 16.72 | 2.11 | 46.33 | 4.09 | 27.20 | 2.95 |
| PJM | 28.81 | 3.23 | 30.88 | 3.42 | 31.88 | 3.39 | 32.42 | 3.40 | 78.66 | 5.50 | 44.15 | 4.19 |
| BE | 182.93 | 5.36 | 184.70 | 5.54 | 186.74 | 5.60 | 187.65 | 5.37 | 321.08 | 8.29 | 217.41 | 6.57 |
| FR | 218.42 | 4.70 | 219.09 | 4.72 | 218.75 | 4.73 | 215.81 | 4.59 | 341.97 | 7.60 | 242.97 | 5.80 |
| DE | 65.18 | 4.96 | 61.83 | 4.80 | 59.15 | 4.68 | 58.99 | 4.58 | 211.49 | 9.15 | 139.03 | 7.63 |
| Dataset | Dim | Sampling Frequency | (Train, Valid, Test) |
|---|---|---|---|
| ETTh1 | 7 | 1 h | (8640, 2880, 2880) |
| ETTh2 | 7 | 1 h | (8640, 2880, 2880) |
| ETTm1 | 7 | 15 min | (34560, 11520, 11520) |
| ETTm2 | 7 | 15 min | (34560, 11520, 11520) |
| Weather | 21 | 10 min | (36887, 10539, 5269) |
| ECL | 321 | 1 h | (18414, 5260, 2630) |
| Market | Exogenous variable 1 | Exogenous variable 2 | Period | (Train, Valid, Test) | |
| NP | the Pennsylvania-New Jersey-Maryland market | 2 day-ahead system load | day-ahead wind generation | 01-01-2013 to 24-12-2018 | (36504, 5448, 10464) |
| PJM | the Nord Pool market | day-ahead load | 2 day-ahead COMED load | 01-01-2013 to 24-12-2018 | (36504, 5448, 10464) |
| BE | the Belgium markets | day-ahead load | day-ahead total France generation | 09-01-2011 to 31-12-2016 | (36504, 5448, 10464) |
| FR | the France markets | day-ahead load | day-ahead total France generation | 09-01-2011 to 31-12-2016 | (36504, 5448, 10464) |
| DE | the Germany markets | day-ahead zonal load | day-ahead wind and solar generation | 09-01-2012 to 31-12-2017 | (36504, 5448, 10464) |
| Patch Size | Hidden Size | Heads | Layers | Units | Blocks | Window Size | Dropout | |
| PatchDecomp | 12,24,48 | 32,64,128,256 | 4,8 | 1,2,3,4 | - | - | - | uniform(0.0,0.5) |
| PatchTST | 12,24,48 | 32,64,128,256 | 4,8 | - | - | - | - | uniform(0.0,0.5) |
| NBEATSx | - | - | - | - | 32,64,128,256 | - | - | uniform(0.0,0.5) |
| NHITS | - | - | - | - | 32,64,128,256 | - | - | uniform(0.0,0.5) |
| TFT | - | 32,64,128,256 | 4,8 | - | - | - | - | uniform(0.0,0.5) |
| DLinear | - | - | - | - | - | - | 11,25,51 | - |
| Hidden Size | Heads | Layers | Units | Blocks | Dropout | |
| PatchDecomp | 16,32,64,128,256,512 | 4,8 | 1,2,3,4 | - | - | uniform(0.0,0.5) |
| NBEATSx | - | - | - | 16,32,64,128,256,512 | - | uniform(0.0,0.5) |
| NHITS | - | - | - | 16,32,64,128,256,512 | - | uniform(0.0,0.5) |
| TFT | 16,32,64,128,256,512 | 4,8 | - | - | - | uniform(0.0,0.5) |
| TSMixer | 16,32,64,128,256,512 | - | - | - | 1,2,4,6,8 | uniform(0.0,0.5) |
| TiDE | 16,32,64,128,256,512 | - | 1,2,3,4 | - | - | uniform(0.0, 0.5) |