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

如何将auto_arima预测值与实际值重叠绘制进行对比

问题解决方法

错误原因

你使用的predict()是模型生成训练集外未来预测值的方法,默认仅生成10期预测结果,无法回溯获取训练阶段的拟合值。你传入0作为预测起始索引时触发报错,是因为predict()要求起始索引必须大于训练集的最大索引,不能落在训练集的时间范围内。

实现方案

要获取和训练集长度一致的模型拟合值,有两种可行方式:

  • 直接调用模型的fittedvalues属性,返回结果长度和输入训练集完全一致,可直接用来和实际值对比绘图
  • 调用predict_in_sample()方法,同样可以返回训练集的拟合结果,支持指定起止索引取部分区间的拟合值

完整示例代码

stepwise_model = auto_arima(data, start_p=1, start_q=1,
                   test='adf',
                 max_p=2, max_q=2, m=7,
                   start_P=0, seasonal=True,
                 d=None, D=1, trace=True,
                   error_action='ignore',  
                   suppress_warnings=True, 
                   stepwise=True)
# 绘制实际值
plt.plot(data['values'], color='r', label='实际值')
# 绘制模型拟合值,两种方式二选一即可
plt.plot(stepwise_model.fittedvalues, color='g', label='模型拟合值')
# 等效写法:plt.plot(stepwise_model.predict_in_sample(), color='g', label='模型拟合值')
plt.legend()
plt.show()

补充说明

如果需要对比模型的外推预测效果,可以先将原始数据集按比例拆分为训练集和测试集,用训练集训练模型后,调用predict(n_periods=len(测试集))生成测试集区间的预测值,再和测试集的实际值做对比即可。

内容的提问来源于stack exchange,提问作者Diogo Santos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:39:04