核心要点

  • MAPE:平均绝对百分比误差,直观但真实值接近 0 时爆炸、且高估惩罚不对称。

  • sMAPE:对称百分比误差,缓解不对称但分母仍可能极小、上界行为有争议。

  • MASE:用绝对误差除以 naive 预测的平均绝对误差,无量纲、可跨序列比较。

  • 选型:含零/小值或跨序列对比用 MASE;同尺度业务沟通可用 MAPE。

标准回答

三种指标

  • MAPE:\( \frac{1}{n}\sum \left|\frac{y_t-\hat{y}_t}{y_t}\right| \)。直观、以百分比表达,但真实值接近 0 时除零/爆炸,且对高估和低估的惩罚不对称(低估上限 100%、高估无上限)。
  • sMAPE(对称 MAPE):分母改用 \( (|y_t|+|\hat{y}_t|)/2 \),缓解不对称问题,但当实际与预测都很小时仍不稳定,且其「对称性」和取值范围在实践中仍有争议。
  • MASE:\( \frac{\text{MAE(模型)}}{\text{MAE(naive 基准)}} \),分母是用上一期值(或季节 naive)预测的平均绝对误差。无量纲,<1 表示优于 naive 基准,可跨不同尺度序列直接比较,对零值稳健。

选型建议

存在零/极小值、需要跨多条序列汇总比较时优先 MASE;与业务沟通单条同尺度序列可用 MAPE;需要相对对称时用 sMAPE。通常多指标并报,并始终对比 naive 基准。

常见误区

⚠️ 常见踩坑

在含零或间歇需求序列上用 MAPE——会除零或被极小真实值放大到失真;这类场景应改用 MASE 或绝对误差类指标。

追问

追问 1MASE 的基准是怎么定的,季节性怎么处理?

非季节用一阶 naive(上一期值)作基准,分母是训练集上 |y_t - y_{t-1}| 的均值;季节序列用季节 naive(上一周期同相位值,lag=s)。MASE<1 说明模型优于这个朴素基准,>1 则不如直接照搬历史。

追问 2为什么 MAPE 的惩罚不对称会有问题?

MAPE 对低估的误差最多 100%,对高估却无上限,模型为优化 MAPE 会系统性偏向低估预测,造成有偏决策(如低估需求导致缺货)。sMAPE 或 MASE 能减轻这种系统性偏差。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。