确定合适的 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$。计算季节差分后的序列:$y't = y_t - y{t-m}$。重新检查 ACF: 绘制季节差分后序列 ($y'_t$) 的 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$)。计算新序列:$y''_t = y't - y'{t-1}$(其中 $y'_t$ 是季节差分后的序列,如果 $D=0$ 则是原始序列)。重新检查平稳性: 对所得序列 ($y''_t$) 进行目视检查和增广迪基-福勒 (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$。{"layout": {"title": "差分后的 ACF/PACF (d=1, D=1, m=12)", "xaxis": {"title": "滞后"}, "yaxis": {"title": "相关性", "range": [-1, 1]}, "xaxis2": {"anchor": "y2", "title": "滞后"}, "yaxis2": {"anchor": "x2", "title": "相关性", "range": [-1, 1]}, "grid": {"rows": 2, "columns": 1, "pattern": "independent"}, "height": 500, "showlegend": false, "shapes": [{"type": "line", "x0": 0, "x1": 25, "y0": 0.1, "y1": 0.1, "line": {"color": "#339af0", "dash": "dash"}, "xref": "x", "yref": "y"}, {"type": "line", "x0": 0, "x1": 25, "y0": -0.1, "y1": -0.1, "line": {"color": "#339af0", "dash": "dash"}, "xref": "x", "yref": "y"}, {"type": "line", "x0": 0, "x1": 25, "y0": 0.1, "y1": 0.1, "line": {"color": "#339af0", "dash": "dash"}, "xref": "x2", "yref": "y2"}, {"type": "line", "x0": 0, "x1": 25, "y0": -0.1, "y1": -0.1, "line": {"color": "#339af0", "dash": "dash"}, "xref": "x2", "yref": "y2"}]}, "data": [{"type": "bar", "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "y": [0.7, 0.5, 0.3, 0.15, 0.05, 0.02, 0.01, 0.0, 0.0, 0.0, 0.0, -0.4, -0.28, -0.2, -0.1, -0.05, -0.02, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2], "name": "ACF", "marker": {"color": "#495057"}, "xaxis": "x", "yaxis": "y"}, {"type": "bar", "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "y": [0.7, 0.05, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.5, 0.02, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25], "name": "PACF", "marker": {"color": "#495057"}, "xaxis": "x2", "yaxis": "y2"}]}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 阶数是一个反复试验的过程,涉及检查图表、拟合模型、检查残差和比较模型拟合统计数据。目标是找到一个简约模型(性能良好且最简单的模型),它能够反映平稳时间序列的非季节性和季节性动态。