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

forecast::accuracy对相同白噪声模型计算结果不一致问题求助

ARIMA(0,0,0)模型精度指标差异问题解答

差异来源

  • 拟合值的计算与对齐逻辑不同
    auto.arima()会自动对输入序列做na.omit()处理,仅基于有效数据(非NA部分)拟合模型,生成的拟合值也只对应有效数据的位置;而Arima()强制拟合时,会保留原始序列的长度,拟合值数组开头会对应原始序列的NA位置生成NA。虽然accuracy()会自动剔除NA参与计算,但两者内部记录的训练集元数据(比如序列长度、索引)不同,可能导致部分计算逻辑的细微差异。

  • MASE的基准误差计算差异
    MASE的计算依赖于朴素基准模型的误差,auto.arima()使用的是na.omit()后的序列计算基准误差;而Arima()基于原始序列的非NA部分计算,两者的基准误差分母可能因序列对齐方式不同而出现差异,最终导致MASE结果不同。

  • Box-Cox变换的自动应用差异
    auto.arima()默认会自动检测是否需要进行Box-Cox变换(lambda=NULL),即使最终选择ARIMA(0,0,0)模型,也可能先对序列做变换后拟合均值,再反变换回原始尺度得到拟合值;而手动调用Arima()时,默认不会自动执行变换,直接拟合原始序列的均值。两种方式得到的拟合值存在差异,自然会导致MPE、MAPE这类依赖拟合值与观测值比值的指标不同。

新精度指标的可信度

当你截取第一个非NA值后的序列重新拟合时:

  • 若确保两个函数的参数完全一致(比如关闭自动Box-Cox变换:lambda=1,关闭近似计算approximation=FALSE,stepwise=FALSE,同时保证allowmean和include.mean均为TRUE),两者的精度指标应该完全一致。
  • 若仍有差异,大概率是参数设置不一致导致的,排查参数后即可得到一致结果。
  • 重新拟合后的指标是可信的:你使用了完整的有效序列,规避了原始序列缺失值带来的计算歧义,只要参数设置正确,指标能准确反映白噪声模型在你的数据上的拟合效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:42:31