我一直在尝试使用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
我不明白。我注意到这些是模型的参数,但我不知道如何使用它们来获得每个索引的上下预测。
我咨询过:this,this和this,但似乎没有一个问题存在同样的问题。我也查看了this question。我试图尽可能地密切关注他们的代码,但无法重现问题。
答案 0 :(得分:2)
当你这样做时:
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的默认标题只是' upper'并且'降低'如果您的原始数据中没有功能标题。