如何使用ARIMA模型基于3天历史股价预测未来多日股价
实现方案
- 核心参数适配:你要求仅用过去3天数据做输入,直接将ARIMA的
order参数第一个值p固定为3即可,该参数代表自回归项的滞后阶数,p=3时模型只会用到输入序列前3期的历史数据,完全匹配你的输入窗口要求。剩下的d(差分阶数)、q(移动平均阶数)可根据数据平稳性简单调整,不会影响指定的3天输入规则。 - 预测逻辑适配:你需要的是未来第2天的预测结果,拟合模型后直接设置预测步数为2,取返回结果的第二个值即可,不需要处理第一步的次日预测值。
代码示例
from statsmodels.tsa.arima.model import ARIMA # 示例股价序列 stock_price = [10, 15, 23, 24, 24, 23, 25, 25, 33, 30] # 提取用于预测的最近3天数据 input_data = stock_price[-3:] # 配置模型:p固定为3匹配3天输入窗口,d设为1做一阶差分保证平稳,q设为0即可 model = ARIMA(input_data, order=(3, 1, 0)) model_fit = model.fit() # 预测未来2天,索引为1的结果即为未来第2天的预测值 predict_res = model_fit.forecast(steps=2)[1] print(predict_res)
补充说明
- 若需要提升预测稳定性,可将原始时间序列转换为监督学习样本:每个样本输入为连续3天的股价,对应标签为该3天结束后延后2天的股价,用全量样本训练模型,滚动预测时每次喂入最近3天的数据即可。
- 如果短序列拟合出现收敛警告,可以用更长的历史序列训练模型,只要固定p=3,模型依旧只会依赖最近3天的历史数据做预测,不会用到更早的数据。
- 目前常用的ARIMA实现来自statsmodels库,并非pandas自带,你可能混淆了工具归属。
内容的提问来源于stack exchange,提问作者pedawan_learner
相关产品推荐
相关产品推荐

