我一直在尝试使用statsmodels的SARIMAX模型,但在我的预测周围返回一个置信区间。
我的目标是为置信区间的上限和下限生成一系列预测。
我尝试拟合我的模型,然后使用 get_prediction()
,最后conf_int()
. get_prediction()
按预期返回每个索引的数据。但是,conf_int()
返回一个奇怪的矩阵:
0 1
ar.S.L7 0.018806 0.194818
ma.S.L7 -0.830238 -0.717128
sigma2 40.832875 48.105937
我不明白。我注意到这些是模型的参数,但我不知道如何使用这些参数来获取每个指数的上限和下限预测。
我咨询过:这个,这个,还有这个,但他们似乎都没有同样的问题。我也看过这个问题。我试图尽可能密切地遵循他们的代码,但无法重现问题。
当你这样做时:
model = sm.tsa.statespace.SARIMAX(params)
fit_model = model.fit()
nforecast = 144
forecast = fit_model.get_prediction(end=model.nobs+nforecast)
ci = forecast.conf_int()
print(ci.head())
您应该获得:
upper [name of your feature] lower [name of your feature]
time1 0.018806 0.194818
time2 -0.830238 -0.717128
time3 40.832875 48.105937
如果原始数据中没有要素标题,则 CI 的默认标题仅为"上"和"下"。