时间序列预测的全景图:从Yule到Transformer的百年演进
时间序列
时间序列预测的全景图:从Yule到Transformer的百年演进
1.1 时间序列的四种"性格"
要在模型丛林中不迷路,先得学会识别数据的"脾气"。任何一段时序信号,无论它来自电力负荷、股票收盘价还是电商平台的商品销量,都可拆解为四种基本模态的叠加:趋势(trend)、季节性(seasonality)、周期性(cyclicality)和随机性(stochasticity)。把这四种模态理解清楚,相当于拿到了一组通用的"诊断工具",后续无论是选用 ARIMA 还是 Transformer,都得先回答同一组问题。
趋势刻画的是数据在长尺度上的方向性漂移。例如中国过去二十年的年度用电总量,受工业化和电气化推动,呈持续单调递增的趋势。趋势往往是慢变量——它不会因为一次寒潮就反转,但会缓慢被结构性因素(如能源转型)重塑。在建模时,趋势通常需要被显式建模或通过差分去除;如果错误地把短期波动当成趋势,就会出现"假回归"现象。
季节性则是固定周期的重复模式。零售业最熟悉的"日节律—周节律—年节律"三层结构,是教科书级案例。季节性具有严格的周期固定性(fixed period),它和趋势的关键区别在于:趋势的单调方向不会循环,而季节性会在固定周期内回到原点。这要求模型必须能区分"日历效应"(calendar effects)——某一天是工作日还是周末、是月初还是月末、是春节还是国庆,都会显著改变数值。
周期性与季节性容易被混淆,但它没有固定周期,通常跨度在 2 年到 10 年不等,且强度随时间变化。宏观经济中的"朱格拉周期"(约 7-11 年)和"库兹涅茨周期"(约 15-25 年)就是典型。股票市场常说的"牛熊转换"也是周期性的一种体现。周期性的辨识最具难度,因为它要求模型对历史中曾经发生过的模式"有记忆",但这种记忆不能被写死为某一固定频率。
随机性则是信号的"背景噪声",它包含了所有模型无法解释的扰动。从信息论视角看,随机性是预测精度天花板的具体来源。但要注意,"随机"并不意味着"无法刻画"——它往往服从某种分布(例如对数正态、Student-t 或有偏的厚尾分布),懂得刻画它的统计特征(如方差、偏度、尾部依赖),本身就是预测能力的一部分。
除了以上四种"标准性格",在实际工业数据中还经常出现第五种模式:突变点或结构性断点(structural break)。典型表现是疫情期间的零售销量——2020 年 3 月某连锁咖啡品牌的日销量在一周内下跌 70%,几个月后又以完全不同的速度反弹。这类事件让基于历史模式的预测彻底失效,是当前时序预测领域最棘手的问题之一。它既不是趋势、也不是季节性,而是由外部冲击造成的范式跳跃(regime shift)。
理解这五种模态的关键在于:它们是可叠加也可分解的。在加法模型下,$y_t = T_t + S_t + C_t + \epsilon_t$;在乘法模型下,$y_t = T_t \cdot S_t \cdot C_t \cdot \epsilon_t$;在更复杂的混合模型中,乘法部分可能只作用于部分分量。模型选择的本质,就是你对这五种模态的"先验分解"。ARIMA 假设趋势加线性季节性加高斯噪声;Prophet 把趋势建模为分段线性、把季节性建模为傅里叶级数、把节假日作为哑变量;而 Transformer 则把所有模态统一交给注意力机制自行学习。本书后续每一章都会重新审视这个分解问题,但分解的"骨架"是一致的。
1.2 预测问题的数学形式化
把现象翻译成数学,是建立共同语言的第一步。一个标准的时序预测问题可以写成:
$$ \hat{y}_{t+1:t+h} = f\left(y_{t-T+1:t},\ \mathbf{x}_{t-T+1:t+h},\ \mathcal{C}\right) $$
其中 $y$ 是目标时序,$\mathbf{x}$ 是协变量(外生变量,如温度、促销、价格),$\mathcal{C}$ 是模型参数化的全集,$T$ 是回望窗口长度(lookback window),$h$ 是预测水平(forecast horizon),$f$ 是预测模型。这个看似简短的公式,其实暗藏了四个必须先明确的设计选择。
第一,回望窗口的长度。经典统计模型(如 ARIMA)通过自相关函数(ACF)和偏自相关函数(PACF)自动选择最优滞后期,本质上隐式选择了窗口;而深度学习模型则通常固定一个比较大的窗口(如 512 或 1024 个时间点),并通过注意力机制让模型自适应地聚焦于最相关的过去片段。选择回望窗口时存在一个根本权衡:窗口太短,会丢失长程依赖(如年度季节性);窗口太长,则引入大量无关噪声并显著增加计算成本。
第二,预测的步长。单步预测(one-step-ahead)只预测未来一个时间点 $h=1$,多步预测(multi-step)则覆盖未来 $h$ 个时间点。多步预测有三种基本策略:递归策略(recursive)只训练一个单步模型,然后用预测值代入下一步输入,缺点是误差会累积;直接策略(direct)为每个 $h$ 训练独立模型,缺点是忽略了不同 $h$ 之间的相关性;多输出策略(multi-output)则一次性输出整个 $h$ 步序列,本书后面章节将详细讨论这三者的偏差-方差权衡。
第三,预测的形式。点预测(point forecast)只给出一个数(如 `1432.5`),区间预测(interval forecast)给出置信区间(如 `1380.0 - 1485.0`),概率预测(probabilistic forecast)则给出完整分布(如"未来 24 小时均值的 90% 分位是 1485")。区间和概率预测在工业界越来越重要——电力调度需要知道"最坏情况下的负荷",保险定价需要知道"损失分布的尾部"。概率预测的质量评估也不同于点预测,常用指标包括 CRPS(Continuous Ranked Probability Score)和对数似然。
第四,损失函数。均方误差(MSE)对异常值敏感,平均绝对误差(MAE)对中位数估计最优,分位数损失(pinball loss)针对分位数预测,Huber 损失则试图兼顾两者。损失函数的选择,本质上是你选择"关注哪一段误差"的体现。比如电力峰值预测关心尾部,宁可用分位数损失;股票收益预测关心波动,用 MSE 会更有用。
把这四个维度固定下来,整个建模任务就清晰了——剩下的所有方法演进,本质上都是在改进公式中的 $f$。
1.3 百年演进:四个时代的方法论更替
1.3.1 1927–1970:统计学的奠基
时间序列作为独立学科,诞生于 1927 年。那一年,统计学家 George Udny Yule 在《Philosophical Transactions of the Royal Society》发表了一篇后来被反复引用的论文,主题是预测太阳黑子的年度数量。Yule 提出一个看似简单却影响深远的想法:用过去若干期的线性加权和来预测下一期。这就是自回归模型(AR model)的雏形:
$$ y_t = c + \phi_1 y_{t-1} + \phi_2 y_{t-2} + \dots + \phi_p y_{t-p} + \epsilon_t $$
Yule 发现,仅用几条参数就能捕捉太阳黑子约 11 年的准周期振荡,这给了统计学家极大信心——原本看似无规律的信号,背后可能存在可建模的线性结构。
四年后,Gilbert Walker 在气象预报研究中系统化了 Yule 的思想,推导出用样本自协方差估计 AR 系数的方程组,这就是后来被称为 Yule-Walker 方程的核心。Walker 的工作不仅给出了理论解,还配套了可在手工计算器上完成的算法流程,使 AR 模型从实验室走向气象局。
接下来的三十年间,自回归模型逐步扩展为 ARMA(AutoRegressive Moving Average)、ARIMA(Integrated ARMA)等族系。1970 年,George Box 和 Gwilym Jenkins 出版了里程碑式的专著《Time Series Analysis: Forecasting and Control》,奠定了Box-Jenkins 方法论。这套流程由"识别—估计—诊断—预测"四个步骤组成,要求分析师通过 ACF、PACF 图人工判断模型阶数,再借助极大似然或最小二乘估计参数,最后通过残差白噪声检验验证模型完备。Box-Jenkins 方法在 1970–1990 年代成为工业界事实标准,从跨国公司的销售预测到政府的人口预测,无不依循这一流程。
Box-Jenkins 方法的优势在于可解释性强——每个参数都有明确的统计含义,AIC/BIC 等信息准则提供了干净的模型选择逻辑。但它的局限也十分明显:它假定数据是平稳的(或可通过差分变平稳),要求残差服从高斯分布,且对非线性模式束手无策。当 1970 年代宏观经济的"滞胀"现象(高通胀与高失业并存)发生时,ARIMA 模型集体失效,这直接催生了下一波方法论革命。
1.3.2 1970–2000:状态空间与非线性的崛起
1970 年代的两大突破改变了时序分析的面貌。第一项是 Kalman 滤波(1960 年由 Rudolf Kalman 提出,1970 年代被广泛用于工程和金融领域)。Kalman 滤波把时序视为一个潜在状态变量的有噪观测:
$$ \begin{aligned} \mathbf{s}_t &= \mathbf{A} \mathbf{s}_{t-1} + \mathbf{B} \mathbf{u}_t + \mathbf{w}_t \\ y_t &= \mathbf{H} \mathbf{s}_t + \mathbf{v}_t \end{aligned} $$
其中 $\mathbf{s}_t$ 是不可直接观测的状态向量。Kalman 滤波提供了一种递归的最优估计算法,能在每一步给出状态的后验均值和方差。这套框架的优雅之处在于它把"趋势、季节性、随机扰动"自然地分解为不同的状态分量——比如著名的结构时间序列模型(Structural Time Series)就显式把水平(level)、趋势(trend)、季节性(seasonal)建模为各自的潜状态方程。
Kalman 滤波在工程领域(GPS、惯性导航)和金融领域(利率期限结构建模)迅速成为基础设施。著名的 Holt-Winters 季节性指数平滑法可以被精确改写为一个线性状态空间模型,这意味着 Box-Jenkins 时代凭经验调参的指数平滑方法,在 1980 年代被赋予了严格的统计推断基础。
第二项突破是 ARCH/GARCH 模型(Autoregressive Conditional Heteroskedasticity,1982 年由 Robert Engle 提出;GARCH 为其 1986 年的推广)。Engle 在研究英国通胀数据时发现,残差的方差随时间剧烈变化——这就是所谓的波动率聚类(volatility clustering):大的波动后面往往跟着大的波动,小的波动后面往往跟着小的波动。ARCH 模型把这种条件异方差显式建模为:
$$ \sigma_t^2 = \omega + \alpha_1 \epsilon_{t-1}^2 + \dots + \alpha_q \epsilon_{t-q}^2 $$
GARCH 模型则进一步加入了方差的自身滞后项。这一族模型为风险度量(VaR)、期权定价、组合优化提供了关键工具,Engle 也因此获得 2003 年诺贝尔经济学奖。
1990 年代还出现了 VECM(向量误差修正模型),用于处理多个具有协整关系的非平稳时序;非线性状态空间模型、马尔可夫切换模型(Markov Switching Model)则让模型能够捕捉"经济周期"这类离散状态间的跳转。这些方法论的共同特征是:它们都在 Box-Jenkins 框架上叠加了一层"动态结构",让模型能处理非平稳、非高斯、结构性突变。
1.3.3 2000–2017:机器学习的嫁接
进入 21 世纪,统计模型与机器学习开始大规模融合。这一时期的核心趋势是:保留时序的特征工程,把预测函数 $f$ 替换为更强大的非线性模型。
最具代表性的工业实践是 M5 竞赛(2017 年举办,预测沃尔玛商品的日销量)。获胜方案大量使用了 LightGBM 和 XGBoost 这类梯度提升树模型,核心特征工程包括:滞后值(lag features,如 $y_{t-1}$、$y_{t-7}$、$y_{t-365}$)、滚动统计量(rolling means and stds)、日期特征(星期几、月份、是否节假日)、价格和促销信息,以及与同品类商品之间的交叉特征(cross-series features,例如同一品类其他商品的历史销量)。最后用一个回归模型把这些特征映射到目标值。
这种"特征工程 + 树模型"的范式在 Kaggle 排行榜和工业界都取得了惊人的成绩。它有几个显著优势:
1. 能自然处理多种外生变量(温度、价格、促销)而无需明确的函数形式; 2. 鲁棒性强,对缺失值和异常值不敏感; 3. 训练和推理速度快,单机可处理百万级样本; 4. 可解释性好,通过特征重要性和 SHAP 值可以诊断模型行为。
但它也有结构性短板:无法建模长程依赖。特征工程只能手工指定若干滞后窗口,要捕捉"去年同一周同一天"、"三年前的某个特殊事件"这种跨年模式非常困难。当数据中存在复杂的非线性时间交互(例如两个不同节律之间的拍频现象),树模型基本无能为力。
这一时期的另一重要进展是混合模型(hybrid models)。例如把 ARIMA 拟合残差、SARIMA 拟合季节性部分,再用梯度提升树捕捉剩余的非线性残差。这种"分而治之"的策略在多个公开数据集上取得了当时的最优成绩,也奠定了后续深度学习模型处理"线性部分 + 非线性部分"的思路。
1.3.4 2017 年至今:深度学习革命
2017 年,Vaswani 等人在《Attention is All You Need》中提出的 Transformer 架构,最初是为自然语言处理设计的,但很快被研究者们移植到时间序列领域。Transformer 之所以在时序上展现了潜力,关键在于两点:注意力机制使其能直接学习任意两个时间点之间的依赖关系(不受距离限制),并行计算使其能高效处理长序列。
但直接套用也会失败。早期实验(如 2020 年的 LogTrans)发现,vanilla Transformer 在时序上的性能常常不如精心调参的线性模型甚至简单复制昨日。这暴露了一个关键问题:Transformer 缺乏归纳偏置(inductive bias)。图像任务中,卷积神经网络天然具有平移不变性和局部性偏置;时序任务中,自相关、趋势平滑性、季节周期性等是非常强的先验,但 Transformer 必须从数据中"学"出来,对数据量要求极高。
为破解这一困境,学术界在 2021–2023 年间密集提出了多个改进版本:
- **Informer**(AAAI 2021 Best Paper):通过 ProbSparse 注意力将复杂度从 $O(L^2)$ 降至 $O(L \log L)$,得以处理超长序列(如电力负荷的分钟级数据长达数日)。
- **Autoformer**(NeurIPS 2021):提出自相关机制(Auto-Correlation),用序列自身的傅里叶变换发现周期并对齐。
- **FEDformer**(ICML 2022):引入频域注意力,结合季节趋势分解。
- **PatchTST**(ICLR 2023):将时间序列切成 patch(类似 ViT 中图像切块),显著提升长程预测能力。
- **iTransformer**(ICLR 2024):把整个变量的时间序列视为 token,倒置注意力机制,在多个基准上刷新 SOTA。
与此同时,时序基础模型(Time Series Foundation Models)也快速涌现,如 TimeGPT(2023)、Chronos(2024)、Moirai(2024)等。它们基于 Transformer,但用大规模跨领域时序数据预训练,展现出"零样本预测"(zero-shot forecasting)的潜力——这一趋势在 2024 年后愈发明显。
但是,Transformer 不是万能解。2024 年的多项独立研究(如 LTSF-Linear 的复现性研究)显示,在许多标准基准上,经过精心调参的简单线性模型(DLinear)甚至能击败复杂的 Transformer。这给整个领域泼了一盆冷水——时序预测的本质困难,可能并不在于模型架构的复杂度,而在于对数据模态的准确刻画。本书会在第 7、8 章专门讨论这场"线性 vs Transformer"之争,并提供系统性的实验复现。
1.4 三个工业案例:一百年的"方法选择地图"
历史脉络之外,更值得关注的是工业界在不同问题上的方法选择逻辑。下面三个案例分别代表三类典型时序问题。
案例一:能源负荷预测
某欧洲电网运营商需要预测未来 24 小时的小时级电力负荷,以协调发电与输电。该问题有三个关键特征:强烈的日节律和周节律(工作日/周末差别明显)、对温度高度敏感(空调负荷)、相对平稳的长期趋势(人口与产业结构的缓慢变化)。
- **1990 年代**:业界普遍使用 Holt-Winters 三参数指数平滑,或 SARIMA(P, D, Q)(p, d, q)。模型对趋势和季节性建模清晰,调参相对简单。
- **2010 年代**:开始尝试 LightGBM + 大量手动特征工程(温度、湿度、风速、小时哑变量等)。在 M5-类预测竞赛中,此类方案在多个电网数据集上把 MAPE 从 2% 降到 1.5% 左右。
- **2020 年代**:Informer、PatchTST 等深度模型开始被试用,但在数据量有限、调参成本高、领域专家更信任可解释模型的情况下,**梯度提升树仍是工业界主力**。一个有趣的折衷方案是"LightGBM 残差学习":先用 SARIMA 拟合主线,再用 LightGBM 拟合残差。
这个案例的方法选择逻辑是:当数据量大、可解释性要求高、模式相对清晰时,机器学习方法胜过深度学习。
案例二:金融波动率预测
某对冲基金希望预测 S&P 500 指数的已实现波动率(realize