我正在将statsmodels的SARIMAX与(1,1,0)x(0,0,1)4一起使用。但是,人工计算的预测与模型的预测输出不匹配。
from statsmodels.tsa.statespace.sarimax import SARIMAX
mod = SARIMAX(data,order=(1,1,0),seasonal_order=(0,0,1, 4))
results = mod.fit()
phi = results._params_ar[0] # -0.5494064434384048
THETA = results._params_seasonal_ma[0] # 0.9993750478844912
y = results.model.endog # array([,.......,...., [16.02], [11.61]])
err = results.resid.values # array([.........,...., 1.36566471, 1.08682365, -0.46994267, -2.1512728 ])
forecast_py = y[-1] + (phi*y[-1]) - (phi*y[-2]) + (THETA*err[-4])
res=results.forecast()
print(forecast_py) # [15.39769366]
print(res.values) # [15.33289151]
这可能是什么原因?我在公式中缺少什么吗?