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

相同参数ARIMA模型在pmdarima与SPSS中拟合值差异原因问询

pmdarima与SPSS同参数ARIMA模型拟合值差异的原因

导致两个工具输出结果存在微小偏差的核心原因来自以下几个维度:

  • 优化器与参数估计逻辑差异:pmdarima的ARIMA实现底层依赖statsmodels库,默认使用L-BFGS等拟牛顿优化器执行极大似然估计;SPSS的ARIMA模块使用自研的优化逻辑,默认以条件最小二乘为基础估计参数。两类优化器的收敛阈值、迭代步长、损失函数截断规则均不相同,即使模型阶数完全一致,最终估计得到的MA系数、截距项也会存在微小差异,直接导致拟合值不同。
  • 初始值处理规则差异:含MA项的ARIMA模型需要指定初始扰动项的取值作为计算起点,pmdarima/statsmodels默认使用Hannan-Rissanen方法计算初始残差,SPSS默认将初始残差设为0或使用自研的初始值预估逻辑。本次使用的模型为MA(1)结构,对初始残差的取值高度敏感,初始值的微小差异会传导至所有后续拟合值的计算结果。
  • 数值精度与舍入规则差异:两个工具的浮点数运算精度、中间迭代结果的舍入规则不同:SPSS的统计模块默认对中间计算结果保留4-6位小数,而pmdarima依赖的numpy/scipy底层使用双精度浮点数运算,精度差异经过迭代累积后也会体现在最终的拟合值输出上。
  • 时间序列预处理逻辑差异:虽然设置的季节性阶数为(0,0,0,12),等价于无季节性效应,但Python代码中执行了asfreq('1M')重索引操作,若原序列存在缺失值,pmdarima默认会在参数估计阶段对缺失值做似然插值处理,而SPSS对缺失值的默认处理规则不同,也可能引入结果偏差。

差异验证方法

可以通过以下操作确认差异来源:

  • 对比两个工具输出的模型系数表,查看MA1系数、截距项的取值,大概率可以直接观测到系数本身的微小差异
  • 固定相同的系数取值,手动按照MA(1)公式拟合值 = 截距 + MA系数 * 上一期残差计算拟合值,可验证拟合值差异是否完全来自系数估计环节
  • 调整pmdarima的初始化参数,指定与SPSS更接近的估计逻辑:
model = pmdarima.arima.ARIMA(
    order=(0, 0, 1), 
    seasonal_order=(0,0,0,12),
    method='css', # 改用条件最小二乘估计,对齐SPSS默认逻辑
    start_params=[0, 0] # 手动指定初始参数,消除初始值随机差异
)

重新拟合后查看拟合值差异是否明显缩小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:18:03