Python 中 ARIMA 的样本内预测区间

In-sample prediction interval for ARIMA in Python

我正在使用 statsmodels ARIMA 来构建模型并给出估计值。 predict() 可用于给出样本内模型estimates/results。 forecast() 可用于给出样本外估计和预测区间。我需要样本内模型结果的预测区间。有什么操作可以用吗?是否可以为样本内调用 forecast()?

如果可能,您应该改用 SARIMAX 模型,该模型具有更多功能,并且会在未来得到更好的支持(ARIMA 模型将在下一版本中弃用)。然后,结果对象将具有名为 get_predictionget_forecast 的方法,这将允许您创建一个使用新值扩展的新结果对象。

获取预测区间的语法略有不同,但它支持样本内和样本外的区间。

from statsmodels.tsa.api import SARIMAX
model = SARIMAX(timeseries, order=(1, 0, 6))
results = model.fit()

pred = results.get_prediction(start=..., end=...)
print(pred.predicted_mean)        # prediction
print(pred.conf_int(alpha=0.05))  # confidence interval

fcast = results.get_forecast(steps=...)
print(fcast.predicted_mean)        # forecast
print(fcast.conf_int(alpha=0.05))  # confidence interval