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

基于ARIMA的月度时间序列预测流程合规性与正确性咨询

时间序列ARIMA建模流程正确性验证

数据背景

拥有2018-2021年共48个月度数据,存储于DataFrame df中:

Amount
2018-01      125.6 
...          ...
2020-12      145.2     
2021-01      148.4
...          ...
2021-12      198.8

训练与测试流程验证

采用前36个月(2018-2020年)数据训练模型,最后12个月(2021年)数据测试,代码如下:

df_train = df[:36]
df_test = df[36:]

arima = pm.auto_arima(df_train, error_action='ignore', trace=True,
                      suppress_warnings=True, maxiter=50,
                      seasonal=True, m=12,
                      random_state=1)

# Best model: ARIMA(1,1,1)(0,1,0)[12] 

predictions, conf_int = arima.predict(n_periods=12, return_conf_int=True)

df_predictions = pd.DataFrame(predictions, index=df_test.index)
df_predictions.columns = ['Predicted amount']

随后计算R²得分:

r2_score(df_test['Amount'], df_predictions['Predicted amount'])

得到约0.92的得分,该流程整体是标准且正确的:

  • 遵循时间序列建模的核心逻辑:用历史数据训练、未参与训练的近期数据做测试,避免了数据泄露,验证方式合理。
  • pm.auto_arima的参数设置适配场景:seasonal=True和m=12匹配月度数据的季节性周期,random_state=1保证结果可复现,其余参数避免了非关键性报错中断流程。
  • 预测结果与测试集索引对齐,便于指标计算,R²得分0.92也说明模型对测试集的拟合效果良好。

2022年预测步骤验证

更新模型并预测2022年数据的代码如下:

arima.update(df_test)
df_forecasts = pd.DataFrame(arima.predict(n_periods=12), index=pd.date_range(start='2022-01-01', end='2022-12-01', freq='MS'))
df_forecasts.columns = ['Forecasted amount']

这一步同样正确且符合行业标准:

  • arima.update(df_test)将测试集的真实数据融入已训练模型,更新参数以学习最新的时序模式,比直接用原模型预测更贴合实际趋势。
  • 生成的日期索引pd.date_range(..., freq='MS')与月度数据的频率完全匹配,保证了预测结果的索引逻辑正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:40:53