进阶篇 第 3 篇:经典永不落幕 - ARIMA 模型详解与实践

(图片来源: Expect Best on Pexels)
在上一篇中,我们深入剖析了自相关函数 (ACF) 和偏自相关函数 (PACF) 图,掌握了如何利用它们来洞察平稳时间序列的内部“记忆”结构。这些知识为我们理解和应用时间序列领域最经典、最广泛的模型之一——ARIMA 模型——铺平了道路。
ARIMA,全称差分整合移动平均自回归模型 (Autoregressive Integrated Moving Average),是一个强大的统计模型,能够捕捉并预测许多类型时间序列数据中的复杂动态。它通过巧妙地组合三个核心构建块来实现这一点。
本篇,我们将一起:
- 解构 ARIMA(p,d,q): 深入理解 AR§, I(d), MA(q) 三个部分的含义与作用。
- 掌握核心流程: 学习经典的 Box-Jenkins 方法论,一步步构建有效的 ARIMA 模型。
- 实战演练: 使用 Python (
statsmodels) 对真实数据进行 ARIMA 建模、诊断与预测。 - 超越视觉: 了解如何利用信息准则 (AIC/BIC) 辅助模型选择。
准备好驾驭这个时间序列建模的“老将”了吗?
解构 ARIMA(p,d,q) 模型
ARIMA(p,d,q) 模型由三个部分组成,每个部分由一个参数表示:
-
AR§ - 自回归 (AutoRegressive) 部分:
- 含义: 模型的当前值依赖于其自身的过去
p个观测值。 - 公式形式 (简化):
y'(t) = c + φ₁y'(t-1) + ... + φ<0xE1><0xB5><0xBD>y'(t-p) + ...(其中y'是差分后的序列) - 参数
p: 代表自回归项的阶数 (Order)。 - 识别线索 (回顾): 平稳序列的 PACF 图在 p 阶截尾。
- 含义: 模型的当前值依赖于其自身的过去
-
I(d) - 差分整合 (Integrated) 部分:
- 含义: 表示为了使原始时间序列变得平稳,需要进行**
d次差分**操作。 - 参数
d: 代表需要进行的差分次数 (Order of Differencing)。 - 确定方法: 通常通过 ADF 等单位根检验来确定
d的值(通常为 0, 1 或 2)。d=0意味着序列本身就是平稳的 (此时模型变为 ARMA)。
- 含义: 表示为了使原始时间序列变得平稳,需要进行**
-
MA(q) - 移动平均 (Moving Average) 部分:
- 含义: 模型的当前值依赖于过去
q个预测误差项 (即白噪声的滞后项)。这里的“移动平均”与我们入门篇讲的“移动平均预测法”不同,它指的是模型中误差项的结构。 - 公式形式 (简化):
y'(t) = ... + ε(t) + θ₁ε(t-1) + ... + θ<0xE1><0xB5><0x97>ε(t-q) - 参数
q: 代表移动平均项的阶数 (Order)。 - 识别线索 (回顾): 平稳序列的 ACF 图在 q 阶截尾。
- 含义: 模型的当前值依赖于过去
组合起来: ARIMA(p,d,q) 模型本质上是对差分 d 次后的平稳序列 y' 建立一个 ARMA(p,q) 模型。它同时利用了序列过去的值 (AR) 和过去的误差 (MA) 来进行建模和预测。
Box-Jenkins 方法论:ARIMA 建模标准流程
构建 ARIMA 模型通常遵循由 Box 和 Jenkins 提出的经典方法论,包含以下四个主要步骤,这是一个迭代的过程:
步骤 1:模型识别 (Identification)
- 目标: 确定合适的差分次数
d,以及初步判断 AR 阶数p和 MA 阶数q。 - 操作:
- 检验平稳性与差分 (定 d):
- 绘制原始序列图,进行 ADF 检验。
- 如果非平稳,进行一阶差分 (
d=1),再次检验。 - 如果仍非平稳,尝试二阶差分 (
d=2),但通常d不会超过 2。记录下你使用的差分次数d。
- ACF/PACF 分析 (初定 p, q):
- 绘制差分后的平稳序列的 ACF 和 PACF 图。
- 根据上一篇学习的模式(截尾/拖尾)初步判断
p和q的可能值。 - 注意: 真实数据模式可能模糊,可能需要考虑多个 (p, q) 候选组合(例如,如果 ACF 在 lag=1 截尾,PACF 拖尾,可能考虑 ARIMA(0,d,1);如果 PACF 在 lag=2 截尾,ACF 拖尾,可能考虑 ARIMA(2,d,0);如果都拖尾,可能考虑 ARIMA(1,d,1) 等)。
- 检验平稳性与差分 (定 d):
步骤 2:参数估计 (Estimation)
- 目标: 对于选定的 (p, d, q) 组合,估计模型中的参数 (φ₁, …, φ<0xE1><0xB5><0xBD>, θ₁, …, θ<0xE1><0xB5><0x97>, c)。
- 操作: 使用统计软件(如 Python
statsmodels)提供的函数,通常采用最大似然估计 (Maximum Likelihood Estimation, MLE) 等方法来拟合模型,找到最优参数。
步骤 3:模型诊断 (Diagnostic Checking)
- 目标: 检验拟合好的模型是否充分捕捉了数据中的信息。核心是检查模型的残差 (Residuals) 是否接近白噪声。
- 操作:
- 残差序列图: 残差应该看起来像随机波动,没有明显的模式。
- 残差 ACF/PACF 图: 残差的 ACF/PACF 图在所有滞后阶数上都不应显著(即都在置信区间内)。
- 残差正态性检验 (QQ 图或 Jarque

最低0.47元/天 解锁文章
307

被折叠的 条评论
为什么被折叠?



