SARIMA公式表示
ARIMA(p,d,q)(P,D,Q)[m]可表示为以上公式,其中B是滞后算子,C是截距,序列y,残差epsilon。
B是滞后算子,可以和其它代数字母一样进行混合运算,但是有形如下面的表达:
注意,在展开的时候,把差分部分看成一个整体,相当于替代了原始序列y,新序列为
用差分新序列替换掉原序列,其它的展开结构不要变,这样就很简洁。
举个例子
ARIMA(0,1,2)(4,1,0)[12] intercept
Dep. Variable: | y | No. Observations: | 70 |
---|---|---|---|
Model: | SARIMAX(0, 1, 2)x(4, 1, [], 12) | Log Likelihood | -95.513 |
Date: | Fri, 14 May 2021 | AIC | 207.026 |
Time: | 18:05:03 | BIC | 223.370 |
Sample: | 0 | HQIC | 213.378 |
- 70 | |||
Covariance Type: | opg |
coef | std err | z | P>|z| | [0.025 | 0.975] | |
---|---|---|---|---|---|---|
intercept | -0.0374 | 0.052 | -0.723 | 0.470 | -0.139 | 0.064 |
ma.L1 | -0.5770 | 0.146 | -3.946 | 0.000 | -0.864 | -0.290 |
ma.L2 | -0.2842 | 0.170 | -1.670 | 0.095 | -0.618 | 0.049 |
ar.S.L12 | -0.4074 | 0.317 | -1.285 | 0.199 | -1.029 | 0.214 |
ar.S.L24 | -0.4278 | 0.287 | -1.488 | 0.137 | -0.991 | 0.135 |
ar.S.L36 | -0.5289 | 0.352 | -1.501 | 0.133 | -1.219 | 0.162 |
ar.S.L48 | 0.4541 | 0.368 | 1.233 | 0.218 | -0.268 | 1.176 |
sigma2 | 0.4349 | 0.145 | 3.003 | 0.003 | 0.151 | 0.719 |
(20211229看这篇博文的时候,我在想为什么sarima_formula手写公式中没有e[t],因为这里就是在算yhat_t,代码中yt实际上是yhat_t,真值yt = yhat_t + e[t],对于SARIMA公式探索在“旺季预测-销量时序预测.ipynb”中)
还有一个注意点,无论如何差分,epsilon是原始序列的残差,而不是差分新序列的残差。
以上的公式基本没有问题,我结合了众多资料,并且我与python中的import pmdarima训练好的模型预测的结果进行了比对,只有极少部分存在偏差,有季节MA项的时候,偏差会稍微大一些,但整体都很接近,为什么有一些差异,这要去看代码。
留言
張貼留言