statsmodels中arima模型的`const`参数并非传统线性回归中的截距,而是对序列均值的估计;其预测公式需以“中心化形式”展开,即用当前系数对**去均值化的历史观测值**加权求和后,再加回均值,才能得到正确的一步预测值。
在使用 statsmodels.tsa.arima.model.ARIMA 拟合带常数项(trend='c')的 AR(p) 模型时,一个常见误区是将输出结果中的 const 系数直接代入形如
$$\hat{X}_t = \phi1 X{t-1} + \phi2 X{t-2} + c$$
的经典自回归公式进行预测。这是不正确的——statsmodels 实现的 ARIMA(特别是 trend='c')采用的是条件均值建模(mean form),其底层假设是:序列围绕一个稳定均值波动,AR 项刻画的是偏离该均值的动态调整过程。
因此,模型实际拟合的是如下等价形式:
$$ X_t - \mu = \phi1 (X{t-1} - \mu) + \phi2 (X{t-2} - \mu) + \varepsilon_t $$
其中 $\mu$ 即为 summary() 中报告的 const(此处为 14.0695),它本质上是平稳序列的无条件均值估计值,而非独立偏置项。
将上式整理后可得显式预测公式:
$$ \hat{X}_t = \mu + \phi1 (X{t-1} - \mu) + \phi2 (X{t-2} - \mu) $$
代入你的数据验证:
计算 $\hat{X}_2$:
mu = 14.06954533
phi1 = 0.88128907
phi2 = 0.11529613
x0 = 19.75569153
x1 = 18.71735656
x2_hat = mu + phi1 * (x1 - mu) + phi2 * (x0 - mu)
print(f"{x2_hat:.8f}") # 输出:18.82120122结果为 18.82120122,与 arimaModelFit.predict()[2] 完全一致,证实了该解释的正确性。
⚠️ 关键注意事项:

总之,理解 const 的统计本质(均值估计)而非字面意义(偏置常数),是正确解读、复现和部署 statsmodels ARIMA 预测结果的关键前提。