如何在ARIMA模型上获得每个预测的置信区间

时间:2020-08-17 14:41:28

标签: python arima

我正在尝试使用SARIMA模型对时间序列进行“模糊”预测

我的训练集是prices_train,并且模型的构建如下:

model_order = (0, 1, 1)
model_seasonal_order = (2, 1, 1, 24)
    
model = sm.tsa.statespace.SARIMAX(
    prices_train, order=model_order, 
    seasonal_order=model_seasonal_order)
model_fit = model.fit(disp=0)

我知道我可以使用以下说明进行点预测:

pred = model_fit.forecast(3) 

但是我不需要点预测,我想要每个预测值的置信区间,所以我可以得到一个模糊的预测值时间序列

我看过诸如this one之类的教程,它们在其中应用了以下代码:

forecast, stderr, conf = model_fit.forecast(alpha=a)

但是,该库似乎自2017年以来已更新,因为这不起作用。我已经阅读了statsmodels手册,但没有找到太多帮助。

2 个答案:

答案 0 :(得分:2)

您的拟合模型应具有返回预测的get_prediction()函数。 然后,您可以致电prediction.conf_int(alpha=a)

答案 1 :(得分:1)

好吧,我找到了一种方法,我会把它张贴在这里,以防任何在2035年阅读此书的人需要它:

预测次数为h

conf_ins = model_fit.get_forecast(h).summary_frame()

它返回一个具有h个预测的置信区间的数据帧,并为每个预测指示:

  • 平均
  • 均方误差
  • 最低
  • 最大