我想使用python中的自动Arima计算.95预测间隔。我想获得预测的标准误差,就像我们可以在R中获得统计预测一样。
然后我将使用公式-点预测±1.96 *当时t的预测标准误差来获得上下边界。
如何在python中获得此预测的标准错误。我为此使用自动Arima预测。我知道statsmodel预测具有std错误参数来获取这些,但是我正在使用自动Arima预测。请告诉我如何获得自动有货的10个时间步的预测间隔? Return Conf interval参数返回非常宽的上限和下限区间。如何获得有马(1 0 2)订单的预测标准误差。
答案 0 :(得分:0)
自动Arima通过将statsmodels.tsa.ARIMA
和statsmodels.tsa.statespace.SARIMAX
包装在一起作为估算器来工作。您可以使用使用statsmodels的方法提取结果。这是一个示例模型:
model = auto_arima(y_train, start_p=0, start_q=0,
test='adf',
max_p=7, max_q=7,
m=np.int(season),
d=n_diffs,
seasonal=True,
start_P=0,
D=1,
trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
和
print(model.conf_int())
将返回拟合参数为95%置信区间的数组。请随时阅读本文档SARIMAX results,以了解有关模型结果的更多信息。
对于10步预测,您可以执行以下操作以获得置信区间:
y_forec, conf_int = model.predict(10,return_conf_int=True,alpha=0.05)
print(conf_int)
要获取模型标准误差,可以使用以下方法提取标准误差:
std_error = model.bse()
要获得预测标准误差,应使用置信区间获得标准误差。以下是解释相同内容的答案:std_err for forecast wiki for standard error and pred interval relation