我正在尝试使用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
手册,但没有找到太多帮助。
答案 0 :(得分:2)
您的拟合模型应具有返回预测的get_prediction()函数。
然后,您可以致电prediction.conf_int(alpha=a)
。
答案 1 :(得分:1)
好吧,我找到了一种方法,我会把它张贴在这里,以防任何在2035年阅读此书的人需要它:
预测次数为h
conf_ins = model_fit.get_forecast(h).summary_frame()
它返回一个具有h个预测的置信区间的数据帧,并为每个预测指示: