SARIMA(季节性自回归积分滑动平均模型)是一种时间序列预测模型,它通过整合季节性模式扩展了 ARIMA(自回归积分滑动平均模型)。ARIMA 模型旨在利用三个参数捕捉非季节性数据中的趋势和依赖关系:p(自回归阶数)、d(差分阶数)和 q(滑动平均阶数)。 SARIMA 添加了四个季节性参数:P(季节性自回归)、D(季节性差分)、Q(季节性滑动平均)和 m(季节性周期长度,例如,对于具有年度季节性的月度数据,为 12)。这使得 SARIMA 能够对非季节性效应和重复性季节性效应进行建模,从而使其对于具有周期性模式的数据集更加灵活。
主要区别在于 SARIMA 如何处理季节性。例如,ARIMA 可能会对每月的销售趋势进行建模,但无法考虑年度假日高峰。SARIMA 通过添加明确地对重复模式进行建模的季节性项来解决此问题。SARIMA 模型表示为 SARIMA(p, d, q)(P, D, Q)m。第一组括号表示非季节性 ARIMA 分量,而第二组定义季节性调整。例如,如果月度销售数据显示年度模式(m=12),SARIMA 可以使用 P=1 来捕捉前一年 12 月的销售额对当前 12 月的自回归效应。差分 (D) 可能会消除季节性趋势,例如从每个数据点中减去前一年的值。
一个实际的例子有助于说明这一点。假设您要预测电力需求,该需求每天都会出现高峰(例如,下午 6 点的用量较高)且存在季节性(例如,冬季的用量较高)。ARIMA 可以对总体趋势和每日波动进行建模,但可能会错过年度冬季激增。SARIMA,使用 m=365(每日数据)或 m=12(每月数据),将对每日和年度模式进行建模。在 Python 中使用 statsmodels
实现 SARIMA 需要指定季节性参数以及标准 ARIMA 项,而 ARIMA 将忽略它们。这使得 SARIMA 更加复杂,但对于季节性是关键因素的数据集来说是必要的。