确定合适的 SARIMA 模型阶数,表示为 SARIMA(p,d,q)(P,D,Q)m,需要确定七个参数。这个过程需要结合分析时间序列的结构、检查 ACF 和 PACF 图,并且通常需要反复试验。
1. 确定季节周期 (m)
季节周期 m 表示一个完整季节周期中的时间步数。这个参数通常由数据本身的特性和领域知识决定:
- 月度数据: 很可能具有年度季节性,因此 m=12。
- 季度数据: 很可能具有年度季节性,因此 m=4。
- 日度数据: 可能具有每周季节性(m=7),每月季节性(大约 m=30,但通常比较复杂),或年度季节性(m=365)。对于标准 SARIMA,每周季节性最常见。
目视检查时间序列图通常是确认推测周期的最佳方式。寻找重复的模式并测量峰值或谷值之间的时间距离。
2. 确定季节差分阶数 (D)
季节差分通过减去相隔一个季节周期 (m) 的观测值来处理季节性。目的是消除季节性模式,以帮助达到平稳性。
- 检查季节滞后的 ACF: 绘制原始时间序列的 ACF。特别查看 m 的倍数滞后(即 m,2m,3m,...)。如果这些季节滞后处有显著的峰值并且衰减非常缓慢,则表明存在强季节性,提示需要进行季节差分。
- 应用季节差分: 如果季节性很强,尝试设置 D=1。计算季节差分后的序列:yt′=yt−yt−m。
- 重新检查 ACF: 绘制季节差分后序列 (yt′) 的 ACF。检查季节滞后处的显著峰值是否已消失或显著减小。
- D>1 何时需要? 很少需要 D>1。如果一次差分后的序列的 ACF 仍然在季节滞后处显示强且不衰减的峰值,您可能会考虑 D=2,但这不常见。通常,D 为 0(不需要季节差分)或 1。
- 正式检验: 虽然目视检查很常见,但存在季节单位根的正式检验(如 Canova-Hansen 检验或 Osborn-Chui-Smith 检验),但在实践中,解释 ACF/PACF 通常足以决定 D=1。
3. 确定非季节差分阶数 (d)
在使用 D 处理季节性后(如果需要),检查所得序列(原始序列或季节差分后的序列)的非季节性平稳性(即检查是否存在趋势或随机游走)。
- 检查 ACF/PACF 和序列图: 查看(可能已经过季节差分的)序列图。它是否仍然显示明显的上升或下降趋势?再次检查 ACF 图。它是否在非季节滞后(滞后 1, 2, 3...)处衰减非常缓慢?
- 应用非季节差分: 如果趋势明显或 ACF 衰减缓慢,应用一阶非季节差分 (d=1)。计算新序列:yt′′=yt′−yt−1′(其中 yt′ 是季节差分后的序列,如果 D=0 则是原始序列)。
- 重新检查平稳性: 对所得序列 (yt′′) 进行目视检查和增广迪基-福勒 (ADF) 检验。如果序列现在是平稳的(ADF 检验拒绝单位根的零假设),那么 d=1 可能适合。
- d=2 何时需要? 如果序列在进行一轮差分 (d=1) 后仍然不平稳,尝试二阶差分 (d=2)。这通常适用于趋势变化(例如加速)的序列。它比 d=0 或 d=1 更不常见。过度差分会引入人为模式,因此请谨慎。
您的目标是使用最少的必要差分步骤 (D 和 d) 来获得平稳序列。
4. 确定季节性自回归 (P) 和移动平均 (Q) 阶数
在应用季节 (D) 和非季节 (d) 差分后序列变得平稳时,检查此最终差分序列的 ACF 和 PACF 图以确定季节性自回归 (P) 和移动平均 (Q) 阶数。重点关注 m 的倍数滞后(m,2m,3m,...)。
- 季节性移动平均 (Q): 查看 ACF 图。如果在滞后 m 处只有一个显著峰值,并且 ACF 在此之后立即截断(即在 2m,3m,... 处的峰值不显著),这表明是一个季节性 MA(1) 模型。设置 Q=1 和 P=0。如果峰值出现在滞后 m 和 2m 处,但在此之后截断,则考虑 Q=2。
- 季节性自回归 (P): 查看 PACF 图。如果在滞后 m 处只有一个显著峰值,并且 PACF 在此之后立即截断(在 2m,3m,... 处的峰值不显著),这表明是一个季节性 AR(1) 模型。设置 P=1 和 Q=0。如果峰值出现在滞后 m 和 2m 处,但在此之后截断,则考虑 P=2。
- 季节性 ARMA (P>0,Q>0): 如果 ACF 和 PACF 在季节滞后处(例如,在 m,2m,3m,... 处逐渐衰减)都显示缓慢衰减的显著峰值,这可能表明需要同时包含季节性 AR 和 MA 项(例如,P=1,Q=1)。
- 常见取值: 通常,P 和 Q 为 0 或 1。较高的季节性阶数不那么常见。从简单开始。
让我们可视化一个经过季节差分 (D=1) 和非季节差分 (d=1) 的月度序列 (m=12) 的 ACF/PACF 图,该图表明 P=1,Q=0 和 p=1,q=0。
ACF 在非季节滞后处(1, 2, 3...)和季节滞后处(12, 24...)逐渐衰减。PACF 在滞后 1(非季节)和滞后 12(季节)后截断。这表明 p=1,q=0 和 P=1,Q=0。置信区间(蓝色虚线)有助于判断显著性。
5. 确定非季节性自回归 (p) 和移动平均 (q) 阶数
同时,检查已差分平稳序列的 ACF 和 PACF 图中最初的几个非季节滞后(滞后 1, 2, 3, ...)。应用标准 ARIMA 识别规则:
- 移动平均 (q): ACF 在滞后 q 后急剧截断,而 PACF 逐渐衰减。设置 p=0。
- 自回归 (p): PACF 在滞后 p 后急剧截断,而 ACF 逐渐衰减。设置 q=0。
- ARMA (p>0,q>0): ACF 和 PACF 都逐渐衰减。
寻找适合这些模式的最简单模型。通常 p 和 q 是 0、1 或 2 这样的小数字。
6. 迭代与优化
从 ACF/PACF 图中识别 SARIMA 阶数通常更像一门艺术而非一门精确的科学。这些图表为候选模型提供了提示。
- 从简开始: 从图表提示的较低阶模型开始(例如,SARIMA(1,1,1)(1,1,1)12)。
- 拟合与诊断: 使用
statsmodels 拟合您的候选模型。检查模型摘要,最重要的是,执行残差诊断(稍后详细介绍)。残差理想情况下应类似于白噪声(无自相关、零均值、恒定方差)。检查残差的 ACF/PACF 图。如果仍有显著峰值,您的模型可能缺少某些结构,提示需要调整阶数(p,q,P, 或 Q)。
- 信息准则: 使用 AIC(赤池信息准则)或 BIC(贝叶斯信息准则)等指标来比较诊断后看起来合理的各种候选模型。较低的 AIC/BIC 值通常表明模型拟合与复杂性之间有更好的平衡。
pmdarima 等库可以使用这些准则自动在潜在阶数网格中搜索,这可以作为手动检查的有用补充。
选择最佳 SARIMA 阶数是一个反复试验的过程,涉及检查图表、拟合模型、检查残差和比较模型拟合统计数据。目标是找到一个简约模型(性能良好且最简单的模型),它能够反映平稳时间序列的非季节性和季节性动态。