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()
现在我可以生成“yhat”预测
yhat = model.forecast(123)
并获得模型参数的置信区间(但不是预测):
model.conf_int()
但是如何生成yhat_lower
和yhat_upper
预测呢?
解决方案
通常,forecast
和predict
方法只产生点预测,而get_forecast
和get_prediction
方法产生包括预测区间在内的完整结果。
在您的示例中,您可以执行以下操作:
forecast = model.get_forecast(123)
yhat = forecast.predicted_mean
yhat_conf_int = forecast.conf_int(alpha=0.05)
如果您的数据是 Pandas 系列,那么yhat_conf_int
将是一个包含两列的 DataFrame lower <name>
,upper <name>
其中<name>
是 Pandas 系列的名称。
如果您的数据是一个 numpy 数组(或 Python 列表),那么yhat_conf_int
将是一个(n_forecasts, 2)
数组,其中第一列是区间的下半部分,第二列是上半部分。
推荐阅读
- python - 如何在openpyxl中删除ConditionalFormattingList
- riscv - 如何在 RISC-V 中的 read_string 之后 print_string
- r - 如何将功能与值插入集成?
- typescript - react-native run-android 出现错误:评估项目':app'时出现问题。([androidx.appcompat:appcompat:1.1.0-rc01])
- c++ - 为什么在我的代码中调用复制构造函数而不是移动构造函数?
- windows - 每月在 Windows 上安排 Docker RUN 命令
- android - 用于预安装的 Google 文字转语音 (GoogleTTS) 语言包
- javascript - checkvalidity 始终为必填字段返回 true
- c - 在哪里可以找到有关此 .s 文件中代码的文档?
- c - 如何在 C 中的 struct array hashmap 中正确地 malloc 项目