You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Statsmodels ARIMA:如何获取预测置信区间及生成yhat上下限?

获取ARIMA预测值的置信区间(上下限)

嘿,这个问题我刚好踩过坑!你当前用的model.forecast()确实只返回点预测值,要拿到预测值的上下限(置信区间),得换用get_forecast()方法,它会返回包含更多信息的预测结果对象。

具体步骤和代码示例

  1. 用get_forecast()替代forecast(),传入预测步数:
import statsmodels
from statsmodels.tsa.arima.model import ARIMA
assert statsmodels.__version__ == '0.12.0'

arima = ARIMA(df['value'], order=order)
model = arima.fit()

# 获取完整的预测结果对象
forecast_results = model.get_forecast(steps=123)
  1. 从结果对象中提取需要的内容:
  • 点预测值(和原来的yhat完全一致):
yhat = forecast_results.predicted_mean
  • 预测值的置信区间(默认是95%置信水平):
confidence_intervals = forecast_results.conf_int()
# 拆分出下限和上限,列名对应原数据的列名"value"
yhat_lower = confidence_intervals['lower value']
yhat_upper = confidence_intervals['upper value']
  1. 调整置信水平(可选):
    如果需要非95%的置信区间,比如90%,可以在conf_int()里指定alpha参数(alpha = 1 - 置信水平):
# 获取90%置信区间
confidence_intervals_90 = forecast_results.conf_int(alpha=0.1)
yhat_lower_90 = confidence_intervals_90['lower value']
yhat_upper_90 = confidence_intervals_90['upper value']

补充说明

你之前用的model.conf_int()是用来获取模型参数(比如AR、MA项的系数)的置信区间,而非预测值的置信区间,这就是它和我们需要的结果不匹配的原因。

内容的提问来源于stack exchange,提问作者Dzmitry Lazerka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 14:37:47