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

R语言forecast包ARIMA模型两种拟合方式结果差异咨询

两种ARIMA拟合方式差异的核心原因

这个问题我之前也碰到过,其实核心是forecast包里Arima()函数的两个用法逻辑完全不一样,咱们一步步拆解:

1. 方式一:Arima(..., model = m1_shattuck_train)的本质

当你用model参数传入训练好的模型时,这个函数的行为是完全复用训练集得到的模型系数,只重新计算残差的方差(因为全量数据的样本量更大,残差的整体波动估计会更新)。简单说,就是把训练集里“练出来”的MA系数、季节MA系数原封不动套在全量数据上,不做任何优化调整。

这种用法的场景是:你已经确定了训练集的模型是最优的,想要快速把这个模型应用到新的数据集(比如后续的观测数据),而不是重新拟合模型。但放到全量数据上时,训练集的系数未必是全量数据的最优解,所以残差会出现未被捕捉的序列相关性——这就是你看到Ljung-Box检验p值极低的原因,而ACF图可能因为样本量变大后置信区间变窄,或者相关性的表现不够直观,所以看起来没异常。

2. 方式二:直接指定参数拟合的本质

当你直接写Arima(..., order=c(0,1,1), seasonal=list(...))时,函数会在全量数据集上重新估计所有模型系数(也就是MA(1)和季节MA(1)的系数)。它会基于全量数据的所有信息,通过最小化残差平方和来找到最优的系数值,这才是真正意义上“针对全量数据拟合ARIMA模型”。

因为系数是贴合全量数据优化出来的,残差会更接近白噪声,所以Ljung-Box检验的p值更高;同时,预测是基于模型系数计算的,系数不同,预测结果自然和方式一不一样。

3. 该选哪种方式?

  • 如果你想得到针对全量数据的最优ARIMA模型,用方式二,这是常规的模型拟合流程。
  • 如果你想验证训练集模型在全量数据上的泛化能力(比如看训练好的模型能不能适配更多数据),或者要把训练好的模型直接应用到新数据上,才用方式一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:35:51