时序预测是利用历史时间序列数据来预测未来值的过程。它在金融、气象、能源、零售等领域有着广泛的应用。
时序预测模型的发展经历了从统计学模型到机器学习模型,再到现在的深度学习和大模型的演变。以下是目前主流时序预测模型的系统性梳理:
一、 统计学模型
这类模型是时序预测的基石,通常适用于数据量较小、模式相对简单(如具有明显的周期性、趋势性)的场景。
-
ARIMA (自回归积分滑动平均模型)
- 原理:结合了自回归 (AR)、差分 (I) 和移动平均 (MA)。要求时间序列是平稳的。
- 优点:理论成熟,可解释性强,适合短期预测。
- 缺点:难以处理复杂的非线性关系和多变量情况。
-
SARIMA (季节性ARIMA)
- 原理:在ARIMA基础上增加了季节性差分参数。
- 适用:具有明显季节性周期波动的数据(如电力负荷、气温)。
-
Prophet (Facebook)
- 原理:基于加性模型,将趋势、季节性(年、周、日)和假期效应分解叠加。
- 优点:对缺失值和异常值鲁棒性强,参数调整直观,无需深厚统计背景即可上手,适合业务场景。
- 缺点:在极长序列和复杂非线性交互上表现一般。
-
ETS (指数平滑) / Holt-Winters
- 原理:对不同时间步的数据赋予不同的权重(近期权重高)。
- 适用:具有趋势和季节性的数据,计算速度极快。
二、 机器学习模型
随着数据特征变得复杂,传统机器学习模型通过特征工程,在竞赛和工业界占据了重要地位。
-
树模型
- 核心思想:将时序问题转化为监督学习问题(构造滞后特征 Lag features、滚动统计特征 Rolling statistics)。
- 优点:对非线性关系捕捉能力强,能处理多变量,训练速度快,可解释性好(特征重要性)。在Kaggle竞赛中常年霸榜。
-
SVR (支持向量回归)
- 适用:小样本数据,但在大数据量下训练较慢。
三、 深度学习模型
深度学习擅长捕捉非线性关系和长距离依赖,是目前研究和应用的主流。
1. RNN/LSTM/GRU (循环神经网络家族)
- 原理:专为序列设计,通过隐藏状态传递历史信息。LSTM和GRU解决了RNN的梯度消失问题。
- 优点:能够捕捉长距离依赖,适合处理变长序列。
- 缺点:串行计算无法并行化,训练较慢;对于极长序列(如几千步以上)记忆能力仍有限。
2. TCN (时间卷积网络)
- 原理:使用膨胀因果卷积,确保未来信息不会泄露到过去。
- 优点:并行计算速度快,感受野大,效果通常优于LSTM。
3. Transformer 类模型
Transformer 凭借自注意力机制在NLP领域成功后,迅速统治了时序预测领域。
- Vanilla Transformer:直接应用标准Transformer,计算复杂度 $O(L^2)$,长序列预测时显存占用高。
- Informer:提出了ProbSparse自注意力机制,将复杂度降至 $O(L \log L)$,解决了长序列预测问题。
- Autoformer:引入了序列分解和自相关机制,更好地捕捉趋势和周期。
- FEDformer:在频域中进行注意力计算,提升了效率和稳定性。
- PatchTST (ICLR 2023):
- 核心创新:借鉴ViT思想,将时间序列分割成小块作为Token输入Transformer。
- 现状:目前公认的SOTA(State-of-the-Art)模型之一,在多变量预测中表现极佳。
4. 特殊架构
- N-BEATS:纯前馈网络,不使用时间索引,通过全连接层堆叠实现,在M4竞赛中夺冠。
- TiDE:Google提出的简单MLP架构,证明了在某些情况下,简单的全连接网络配合合适的设计也能打败复杂的Transformer。
四、 时序大模型
这是2023-2024年的最新趋势。类似于NLP中的GPT,研究者希望训练通用的时序模型,实现零样本或少样本预测。
- TimeGPT:首个宣称的商业化时序基础模型,类似调用GPT API一样进行预测。
- Lag-Llama:基于Llama架构的概率预测基础模型。
- Chronos (Amazon):将时间序列量化为词元,使用T5架构进行训练,具有极强的泛化能力。
- Time-LLM:利用大语言模型(LLM)的推理能力,将时序数据通过Prompt Engineering进行处理,让LLM直接“说出”预测值。
五、 如何选择模型?
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 数据量少 (<1000点) | ARIMA, ETS, Prophet | 统计模型对样本效率高,不易过拟合。 |
| 强解释性需求 | SARIMA, Prophet, XGBoost | 需要向业务方解释为什么这样预测。 |
| 多变量 + 复杂非线性 | XGBoost, LightGBM | 特征工程做好的情况下,树模型性价比极高。 |
| 长序列预测 | Informer, Autoformer, PatchTST | Transformer架构在捕捉长依赖上有优势。 |
| 多变量关联复杂 | PatchTST, iTransformer | 现代Transformer变体对多变量通道建模效果更好。 |
| 缺乏历史数据/冷启动 | 时序大模型 | 利用预训练知识进行零样本预测。 |
六、 实用工具库推荐
statsmodels/pmdarima:经典统计模型(ARIMA等)的首选。Prophet:Facebook开源,简单易用。sktime:统一的接口,兼容scikit-learn,支持多种模型。Darts:目前最强大的Python时序库之一,统一了ARIMA、Prophet、Torch模型(Transformer, N-BEATS)的API,非常推荐。GluonTS:Amazon开源,专注于概率时序预测和深度学习模型。Time-Series-Library:清华大学开源,包含几乎所有主流Transformer类时序模型(PatchTST, Informer等)的实现。