ARIMA模型:plot_diagnostics,我们模型的残差是什么意思

时间:2017-05-29 15:19:28

标签: python time-series statsmodels

我正在使用以下教程学习ARIMA模型:https://www.digitalocean.com/community/tutorials/a-guide-to-time-series-forecasting-with-arima-in-python-3#step-5- - 拟合 - arima-time-series-model

在我使用步骤5拟合模型后 - 使用以下代码拟合ARIMA时间序列模型:

mod = sm.tsa.statespace.SARIMAX(y,
                                order=(1, 1, 1),
                                seasonal_order=(1, 1, 1, 12),
                                enforce_stationarity=False,
                                enforce_invertibility=False)

results = mod.fit()

print(results.summary().tables[1])

和情节

results.plot_diagnostics(figsize=(15, 12))
plt.show()

我不知道其含义:我们模型的残差是不相关的,并且通常以零均值分布。我想知道模型中的残差是什么,残差是真值和预测值之间的差异。

为什么作者设置enforce_stationarity为False,因为ARIMA模式需要数据平稳性,enforce_stationarity和enforce_invertibility的含义是什么?

 enforce_stationarity=False,
 enforce_invertibility=False

如果可能,你能否详细解释一下。谢谢!

1 个答案:

答案 0 :(得分:1)

残差确实是真实值和预测值之间的差异。如果残差之间存在相关性 - 残差中剩下的信息应该用于计算预测。如果残差的平均值不为零,那么预测就会有偏差。例如,如果我们有一个不断增长的残差,如(...... -0.3,-0.2,0.1,0,0.1,0.2,0.3 ......等等),则平均值为0)这意味着我们的模型没有完全描绘了这个过程。

参数: 如果您查看包documentation,您会看到这些参数用于ENFORCE平稳性或可逆性。如果数据是静止的并且AR参数被正确选择(因为您应该已经完成​​了一些先前的数据预处理),为什么我们要再次进行?同样代表可逆性。