专题
可解释的分解
时间序列信号分解涉及将原始时间序列分解为其组成部分。通过分解时间序列,我们可以深入了解其潜在模式、趋势-周期和季节性影响,从而提高理解和预测准确性。
本笔记将展示如何使用 NHITS
/NBEATSx
提取这些时间序列的组成部分。我们将
- 安装 NeuralForecast。
- 模拟谐波信号。
- NHITS 的预测分解。
- NBEATSx 的预测分解。
您可以使用 Google Colab 在 GPU 上运行这些实验。
1. 安装 NeuralForecast
2. 模拟谐波信号
在此示例中,我们将考虑一个包含两个频率的谐波信号:一个低频和一个高频。
unique_id | ds | y | |
---|---|---|---|
9904 | 1 | 9904 | -0.951057 |
9905 | 1 | 9905 | -0.570326 |
9906 | 1 | 9906 | -0.391007 |
9907 | 1 | 9907 | -0.499087 |
9908 | 1 | 9908 | -0.809017 |
… | … | … | … |
9995 | 1 | 9995 | -0.029130 |
9996 | 1 | 9996 | -0.309017 |
9997 | 1 | 9997 | -0.586999 |
9998 | 1 | 9998 | -0.656434 |
9999 | 1 | 9999 | -0.432012 |
3. NHITS 分解
我们将利用 NHITS
的堆栈特化来恢复潜在的谐波函数。
NHITS
是一种受小波启发的算法,可以将时间序列分解为各种尺度或分辨率,有助于识别局部模式或特征。每一层的表达比例可以控制模型的堆栈特化。
4. NBEATSx 分解
此处我们将利用 NBEATSx
可解释的基础投影来恢复潜在的谐波函数。
NBEATSx
的可解释变体顺序地将信号投影到多项式和谐波基上,以学习趋势 和季节性组成部分:
与 NHITS
的小波状投影不同,基础极大地决定了投影的行为。并且傅里叶投影无法立即分解为单个频率。
参考文献
- Cristian Challu, Kin G. Olivares, Boris N. Oreshkin, Federico Garza, Max Mergenthaler-Canseco, Artur Dubrawski (2023). NHITS: Neural Hierarchical Interpolation for Time Series Forecasting.
- Boris N. Oreshkin, Dmitri Carpov, Nicolas Chapados, Yoshua Bengio (2019). “N-BEATS: Neural basis expansion analysis for interpretable time series forecasting”.
- Kin G. Olivares, Cristian Challu, Grzegorz Marcjasz, Rafał Weron, Artur Dubrawski (2021). “Neural basis expansion analysis with exogenous variables: Forecasting electricity prices with NBEATSx”.