Statsmodels ARIMA:如何获得置信度/预测区间?

Dzm*_*rka 7 python statsmodels arima

如何生成“较低”和“较高”预测,而不仅仅是“yhat”?

import statsmodels
from statsmodels.tsa.arima.model import ARIMA

assert statsmodels.__version__ == '0.12.0'

arima = ARIMA(df['value'], order=order)
model = arima.fit()
Run Code Online (Sandbox Code Playgroud)

现在我可以生成“yhat”预测

yhat = model.forecast(123)
Run Code Online (Sandbox Code Playgroud)

并获取模型参数的置信区间(但不适用于预测):

model.conf_int()
Run Code Online (Sandbox Code Playgroud)

但如何生成yhat_loweryhat_upper预测呢?

cfu*_*ton 15

一般来说,forecastpredict方法仅产生点预测,而get_forecastget_prediction方法产生包括预测区间的完整结果。

在您的示例中,您可以执行以下操作:

forecast = model.get_forecast(123)
yhat = forecast.predicted_mean
yhat_conf_int = forecast.conf_int(alpha=0.05)
Run Code Online (Sandbox Code Playgroud)

如果您的数据是 Pandas Series,则将yhat_conf_int是一个具有两列的 DataFrame,lower <name>并且upper <name>,其中<name>是 Pandas Series 的名称。

如果您的数据是 numpy 数组(或 Python 列表),那么yhat_conf_int将是一个(n_forecasts, 2)数组,其中第一列是间隔的下半部分,第二列是上半部分。

  • 人们应该将置信区间与预测区间不同,即平均估计和点预测。这些是不同的术语、概念,并进行不同的计算。 (3认同)