ARIMA 与 Box-Jenkins 方法论
完整的 Box-Jenkins 流程:识别、估计、诊断、预测。季节 ARIMA,为什么差分能修复非平稳性,以及什么时候会失效。
Box 和 Jenkins (1976) 给应用统计学家一个流程:认真走下来,不靠深理论也能做出像样的时间序列预测。流程分四步——识别、估计、诊断、预测。它能用不是靠运气:ARMA 模型在(纯非确定性)平稳过程空间里稠密(Wold 分解,见随机过程那篇),而积分扩展处理最常见的非平稳形式。理论保证覆盖面,流程保证纪律,这篇文章就把这个流程从头走到尾,顺便标出每一步最容易走错的地方。
严格参考是 Hamilton (1994, 第 4–5 章),应用预测参考 Hyndman & Athanasopoulos (2018, 第 8–9 章),金融应用看 Tsay (2010, 第 3 章)。
ARIMA 解决的问题
ARMA 假设平稳。现实里很多序列不平稳:GDP 增长、价格漂移、交通量上升。ARMA 处理不了的最简单的非平稳形式是单位根——水平序列里含有随机游走分量。
如果 ,那么 ,滞后 的自相关在 时 。经典 ARMA 机器在这里输出垃圾:标准误错、预测忽略单位根、识别图很怪(ACF 衰减非常慢)。
修复很朴素:差分。定义 。如果 有单位根, 就是白噪声(或 ARMA),可以照常拟合。这就是 ARIMA() 模型:
其中 是 阶差分。 时 服从 ARMA(); 差分两次。
什么时候差分
实际问题是 怎么选。单位根检验(下一篇)给形式化答案:ADF、Phillips-Perron、KPSS。但 Box 和 Jenkins 给了一个更视觉化的流程:
- 看序列本身。有趋势,差分一次;方差随时间增长,先取对数。
- 看 的 ACF。自相关衰减慢(长滞后值还大),序列非平稳,差分。
- 差分后再看。 的 ACF 衰减得快,搞定;还不行,再差分一次。
- 避免过度差分。差分超过需要会在差分序列里诱发负的 MA(1) 结构。差分后 ,多半是差多了——接近单位根的 MA 项就是信号。
对季节序列还要季节差分:。年度周期的月度数据常常需要 。常规差分和季节差分可以同时做。
Box-Jenkins 流程
第一步:识别。
画出 。需要的话做变换(对数、平方根、Box-Cox)稳定方差,差分引入平稳性。然后画(变换后、差分后)序列的 ACF 和 PACF,用图形模式提示 :PACF 在滞后 后截尾、ACF 拖尾,是 AR();ACF 在滞后 后截尾、PACF 拖尾,是 MA();两个都拖尾,是 ARMA()(),这时早期滞后上的尖峰暗示 和 的量级。拿不准时宁可稍微过度参数化:多几个参数带来的小偏差,通常比漏掉结构的大偏差便宜。
现代实践中,信息准则替代肉眼判断:
其中 是极大对数似然, 是参数个数。AIC 倾向于过度参数化;BIC 在大 时更精简;Hannan-Quinn 和小样本修正的 AICc 是备选。
第二步:估计。
用 CSS(条件平方和)给初值,再用精确 MLE 通过卡尔曼滤波或创新算法精修。季节 ARIMA 要整体联合拟合,不要把常规部分和季节部分分开估计。另外记账: 的差分损失 个观测, 加 的季节差分损失 13 个。通常不是问题,除非 很小。
第三步:诊断检验。
用 ARMA 那篇的套件:残差 ACF、Ljung-Box、正态性、ARCH-LM。残差应该看起来像白噪声。诊断不过的时候有三条路,按改动幅度从小到大排:重新识别(换一组 、加季节项、再查);加结构(残差还有自相关就提高 或 ,有 ARCH 效应就叠一层 GARCH,非正态就换肥尾创新分布);换模型类(差分后单位根检验仍拒绝平稳,考虑 ARFIMA、结构突变模型、状态切换模型)。走哪条路取决于诊断具体怎么挂的——这也是为什么诊断不是走过场。
第四步:预测。
把模型向前迭代,实际值还没到的地方代入滞后预测。 步前:
预测误差方差随 增长:单位根过程按 增长,平稳过程渐近到无条件方差。95% 预测区间:
实践中这些区间偏窄,因为它们假设模型设定正确且创新项高斯。Bootstrap 预测区间能处理第二个问题;第一个问题没有免费解法,只能靠诊断和留出样本。
季节 ARIMA(SARIMA)
很多序列有季节模式:月度零售、季度营收、日流量。ARIMA 类自然延伸:
其中 是季节周期(月度 12、季度 4), 是季节差分阶数, 是季节 AR 和 MA 多项式。
季节差分 干掉频率 处的季节单位根。 可以从季节滞后上的 ACF/PACF 读出来: 又大又正但 小,你需要季节差分;ACF 在滞后 12、24、36 上有尖峰但之间衰减,你需要季节 MA(1)。
对航空旅客数据(Box-Jenkins 的经典例子),正确的模型是 ARIMA(0, 1, 1)(0, 1, 1):
,。产生的预测能同时抓住线性趋势和乘积季节模式。
为什么叫”乘积”?SARIMA 用乘积季节因子而不是加性,直觉是季节性常常随水平放大——十二月尖峰随着序列增长越来越大。如果对 差分而不是 ,乘积结构变成加性,模型退回差分 log 序列上的 ARMA。这也点出一个常见坑:季节性在水平上是乘积的,你却用了加性季节模型,那预测误差在序列最大的地方(零售的十二月)也最大——最不该错的地方错得最狠。
差分 vs. 去趋势
去掉趋势有两种方法,给出的是不同的模型,不是同一个模型的两种写法。确定性趋势:, 平稳,趋势永远线性地预测下去。随机趋势:,水平是随机游走。两种都有的序列也存在:。
对长期预测,选错代价不对称。确定性趋势下预测区间宽度收敛到常数;单位根下按 增长;近单位根介于两者之间——短水平期像单位根一样变宽,水平期够长后封顶在无条件方差。如果真实是确定性趋势而你差分了,得到过度差分加 的 MA(1):浪费,但不是灾难。如果真实是单位根而你没差分,预测会在转折点系统性滞后、置信区间过窄:这是灾难。两种错不等价,所以拿不准时宁可差分。
单位根检验(下一篇)就是为这件事设计的,但它们对近单位根备择检验力低,别只信一次检验。看序列、看 ACF、看确定性趋势拟合的残差,然后做判断。
一个 Box-Jenkins 完整例子
序列:1992–2020 年美国月度零售销售,对数水平。走一遍四步。
识别。 图上有明显上升趋势和年度季节性,二者幅度都在变大;取对数,幅度稳定下来;应用 (常规 + 季节差分),图上看大致在零附近平稳。ACF 在滞后 12 有大尖峰、24 和 36 较小,季节滞后之间在滞后 1 后截尾;PACF 在季节滞后上衰减慢。暂定 ARIMA(0, 1, 1)(0, 1, 1)——和航空模型同型,不是巧合,这个形状在”趋势 + 放大的季节性”数据上反复出现。
估计。 MLE 拟合,得到 ,,。
诊断。 残差 ACF 在滞后 1 到 36 都无显著自相关;Ljung-Box 在滞后 12、24 的 p 值 0.42、0.31,不能拒绝白噪声;残差直方图略肥尾但无模式;ARCH-LM 滞后 5 给 ,临界——想更讲究就在上面叠 GARCH。
预测。 12 步前预测延伸近期趋势加阻尼季节周期,80% 和 95% 区间随 变宽,留出样本回测 MAPE 约 1.5%。对月度宏观序列,这个水平算称职。
如果要给一篮子序列做这件事,识别可以自动化:auto.arima(Hyndman & Khandakar, 2008)用 AICc 做准则对 逐步搜索。速度快、站得住脚,而且极少比时间压力下的手工拟合更差。
代码:Auto-ARIMA
import pandas as pd
from pmdarima import auto_arima
model = auto_arima(
y,
seasonal=True,
m=12, # 月度季节周期
d=1, D=1, # 固定差分阶数;留空则由单位根/季节检验自动选
max_p=3, max_q=3,
max_P=2, max_Q=2,
information_criterion='aic',
stepwise=True, # 更快;False 用完整网格
suppress_warnings=True,
)
print(model.summary())
print(model.order, model.seasonal_order)
forecast, conf_int = model.predict(n_periods=24, return_conf_int=True)
ARIMA 的边界
Box-Jenkins ARIMA 的甜蜜区是月度或季度宏观序列:单一主导季节模式、噪声适中。离开甜蜜区它掉得很快。高频金融数据上,方差动态占主导——对收益率跑 ARIMA 没问题但没意思,对价格跑 ARIMA 是单位根主导。有结构突变的序列上,ARIMA 的常参数假设意味着突变后预测一直错到你重新估计为止。状态切换的序列(衰退 vs. 扩张、低波 vs. 高波)要马尔可夫切换模型。长记忆序列(自相关双曲衰减:波动率聚集、河流流量、互联网流量)要 ARFIMA 或 FIGARCH。非线性动态则有门槛 AR、平滑转换 AR 和神经网络扩展这一族。
统一的判断标准:如果诊断显示残差有持续结构,ARIMA 就是错的模型。别一直加 和 直到残差看起来白——有时候数据生成过程根本不是 ARMA,加参数只是在把误设藏进方差里。
Box-Jenkins 为什么活了这么久
这套方法论做时间序列预测的主流已经接近 50 年,机器学习的浪潮也没把它拍下去。原因值得展开,因为每一条都对应一个实际约束。
它精简: 个观测拟合 5 个参数没问题,成千参数的网络在这个样本量上只会背题。它可解释:系数直接对应自相关结构、对冲击的反应、持续性。它的统计推断成熟:标准误、置信区间、假设检验都有站得住的渐近性质,正确设定下预测区间有有效覆盖。它计算便宜:MLE 很快,预测 O(p),选型可以交给 auto.arima。它有理论兜底:Wold 分解保证 ARMA 的覆盖面,差分处理最常见的非平稳,合起来吃下现实序列的很大一部分。
经验证据来自 M-竞赛(Makridakis 时间序列预测竞赛):简单统计方法(ARIMA、指数平滑)在月度、季度序列的短期预测上一直非常能打,纯机器学习方法整体反而不敌统计基准;M4 的冠军是统计与机器学习的混合方法,而”组合”本身是最稳定的赢家。对日频或更高频数据,情况另说:收益率上 ARIMA 没意思,波动率上被 GARCH 压,tick 数据上没指望。
模型平均与组合
与其挑一个 模型,不如对多个模型的预测做平均。Bates & Granger (1969) 就表明预测组合常常胜过单个预测,即便单个模型本身设定有误。简单等权平均就能用;AIC 加权按 加权归一化;贝叶斯模型平均给模型先验、算后验加权预测。大型预测竞赛里,ARIMA、指数平滑加几个结构模型的组合通常胜过任何单一方法——跨模型类做平均,对冲的正是任何单一类不可避免的设定失误。
离群点问题
真实数据有离群点,而 ARIMA 假设残差 iid 来自高斯(或其他轻尾)分布。一个离群点就能让参数估计有偏(优化器去迁就它)、扭曲残差诊断(看起来像模型误设)、并给出糟糕的预测(模型学会了”预测”那个离群点)。
检测很简单:算标准化残差 , 或 4 的就是嫌疑对象。处理手段按侵入程度排:给离群点加虚拟变量回归子,让它吸收对参数估计的影响(Chen & Liu 1993 是这条路的系统化版本);一次性数据错误(笔误、记录失误)直接替换成模型隐含值;粗暴一点就截断或缩尾到第 1/99 百分位;或者干脆换稳健损失函数,用绝对偏差替代平方偏差,自动降权。对高频金融数据,离群点是常态(闪崩、交易所宕机、肥尾),处理方式的选择会实质性影响预测和 VaR 估计——这不是收尾时的清洁工作,是建模决策。
关于神经网络的预测
神经网络做时间序列预测很流行,但在 M-竞赛里没有稳定击败 ARIMA。原因和前面”为什么活了这么久”是同一枚硬币:网络要几千甚至百万级观测,ARIMA 50–100 就能用;参数多数据少时网络背下训练集、样本外崩盘,ARIMA 的小参数量在这里是优势不是劣势;网络性能严重依赖架构、学习率、正则化这些超参,ARIMA 的旋钮少得多;网络预测难解释,ARIMA 系数有清晰含义;数据生成过程一变,在历史上训练的网络常常失效,而 ARIMA 周期性重估、有适应能力。
时间序列 transformer 和预训练基础模型的进展可能改变这个格局。但至少到目前,ARIMA 及其变体仍然是大多数应用预测任务的主力——不是因为它聪明,是因为它便宜、稳、可审计,而多数预测任务要的恰恰是这三样。
参考文献
- Box, G. E. P., & Jenkins, G. M. (1976). Time Series Analysis: Forecasting and Control. Holden-Day.
- Box, G. E. P., Jenkins, G. M., & Reinsel, G. C. (2015). Time Series Analysis: Forecasting and Control (5th ed.). Wiley.
- Hamilton, J. D. (1994). Time Series Analysis. Princeton University Press. Ch. 4-5.
- Hyndman, R. J., & Athanasopoulos, G. (2018). Forecasting: Principles and Practice (2nd ed.). OTexts.
- Hyndman, R. J., & Khandakar, Y. (2008). Automatic time series forecasting: The forecast package for R. Journal of Statistical Software, 27(3), 1-22.
- Tsay, R. S. (2010). Analysis of Financial Time Series (3rd ed.). Wiley. Ch. 3.
- Bates, J. M., & Granger, C. W. J. (1969). The combination of forecasts. Operations Research Quarterly, 20(4), 451-468.
- Makridakis, S., Spiliotis, E., & Assimakopoulos, V. (2020). The M4 Competition: 100,000 time series and 61 forecasting methods. International Journal of Forecasting, 36(1), 54-74.
- Chen, C., & Liu, L.-M. (1993). Joint estimation of model parameters and outlier effects in time series. Journal of the American Statistical Association, 88(421), 284-297.