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

Python:如何使用已拟合的ARIMA模型对未知数据进行滚动预测

statsmodels ARIMA固定模型滚动预测实现方案

你需要的固定参数滚动预测可以通过ARIMA拟合结果对象自带的extend(0.13+版本)/append(0.12及更早版本)方法实现,该方法仅用已训练好的模型参数更新观测序列状态,不会重新拟合,完全满足实时预测的性能要求。

具体实现代码示例

import pandas as pd
from statsmodels.tsa.arima.model import ARIMA

# 1. 初始拟合固定参数模型,仅执行一次
# 假设全量数据的value列为时间序列值,索引为连续顺序索引
train_data = df.iloc[:7000]['value']
# 替换为你自己的p/d/q参数
arima_model = ARIMA(train_data, order=(1,1,1))
# 拟合后的res对象全程复用,不需要再次调用fit
fitted_res = arima_model.fit()

# 2. 第一次预测:得到7001~7004的4步预测结果
first_pred = fitted_res.forecast(steps=4)

# 3. 拿到新观测数据(索引7001的真实值)后更新模型状态
new_observed = df.iloc[7000:7001]['value']
# extend方法传入新增观测,refit设为False保证不重新拟合模型参数
# 0.12及更早版本替换为 fitted_res.append(new_observed, refit=False)
fitted_res = fitted_res.extend(new_observed, refit=False)

# 4. 第二次预测:得到7002~7005的4步预测结果
second_pred = fitted_res.forecast(steps=4)

# 后续滚动迭代重复步骤3、4即可

核心注意事项

  • 必须设置refit=False,否则模型会用全量历史+新增数据重新估计参数,不符合固定模型的需求
  • 单次可以传入任意长度的新增观测序列,不需要逐条传入,方法会自动更新内部状态
  • 如果使用带外生变量的ARIMAX模型,调用extend时需要同步传入新增观测对应的外生变量值,维度需和训练时保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:45:02