预测误差指标总览:常用指标的定义与适用场景对比
在供应链预测中,误差指标是衡量模型性能的“标尺”。不同的指标对误差的惩罚方式、尺度敏感性和可解释性各不相同。本章系统梳理 MAE、MSE、RMSE、MAPE、sMAPE、MASE 六类常用指标,重点剖析它们在间歇需求场景下的表现差异,为后续选型提供理论基础。
核心观点:没有“万能”的误差指标。在间歇需求场景中,MAPE 因分母为零或极小值而失效,sMAPE 和 MASE 则通过对称化或基准缩放提供了更稳健的替代方案。
1. 六类指标数学定义速览
设 yt 为实际值,ŷt 为预测值,n 为样本量。下表汇总各指标的计算公式与核心特性:
| 指标 | 数学定义 | 尺度依赖 | 对称性 | 对零值敏感 |
|---|---|---|---|---|
| MAE | MAE = (1/n) Σ |yt - ŷt| |
是 | 对称 | 否 |
| MSE | MSE = (1/n) Σ (yt - ŷt)² |
是 | 对称 | 否 |
| RMSE | RMSE = √MSE |
是 | 对称 | 否 |
| MAPE | MAPE = (100%/n) Σ |(yt - ŷt) / yt| |
否 | 非对称 | 是(致命) |
| sMAPE | sMAPE = (200%/n) Σ |yt - ŷt| / (|yt| + |ŷt|) |
否 | 对称 | 部分缓解 |
| MASE | MASE = MAE / MAEnaive |
否 | 对称 | 否 |
关键解读:
- MAE / MSE / RMSE 保留原始量纲,适合同一数据集内的模型对比,但无法跨序列比较。
- MAPE 在 yt = 0 时无定义,在间歇需求中几乎不可用。
- sMAPE 通过分母对称化避免除以零,但当 yt = ŷt = 0 时仍存在 0/0 问题。
- MASE 使用朴素预测(Naïve Forecast)的 MAE 作为基准,天然适应零值需求。
2. 指标适用场景对比矩阵
以下矩阵从五个维度评估各指标在供应链预测中的适用性,特别标注间歇需求场景的表现:
| 评估维度 | MAE | MSE / RMSE | MAPE | sMAPE | MASE |
|---|---|---|---|---|---|
| 间歇需求稳健性 | ✅ 好 | ✅ 好 | ❌ 极差 | ⚠️ 中等 | ✅ 好 |
| 跨序列可比性 | ❌ 否 | ❌ 否 | ✅ 是 | ✅ 是 | ✅ 是 |
| 异常值惩罚 | 线性 | 平方(强) | 线性(比例) | 线性(比例) | 线性 |
| 业务可解释性 | ✅ 高 | ⚠️ 中等 | ✅ 高(百分比) | ✅ 高(百分比) | ⚠️ 中等 |
| 推荐场景 | 连续需求、库存成本优化 | 异常值敏感场景 | 连续需求、管理层汇报 | 间歇需求、多SKU对比 | 间歇需求、基准对比 |
3. 间歇需求场景下的误差指标行为分析
间歇需求序列中大量存在零值,这对误差指标的计算逻辑产生根本性影响。以下通过一个具体案例说明:
# 示例:间歇需求序列(含零值)
实际值 y = [0, 5, 0, 0, 12, 0, 3, 0, 0, 8]
预测值 ŷ = [0, 4, 1, 0, 10, 0, 2, 1, 0, 7]
# 各指标计算结果(示意)
MAE = 0.7 # 误差均值
RMSE = 0.95 # 平方误差开方
MAPE = ∞ # 分母含零,无法计算
sMAPE = 18.2% # 对称化后有限值
MASE = 0.58 # 优于朴素预测(MAE_naive=1.2)
⚠️ MAPE 在间歇需求中的失效机制:
当实际值 yt = 0 时,MAPE 的分母为零,导致该点误差无穷大。即使只有一个零值,整个 MAPE 也会被污染为无穷大。实践中,部分团队会“忽略”零值点,但这会丢失需求爆发时的预测信息,造成评估偏差。
当实际值 yt = 0 时,MAPE 的分母为零,导致该点误差无穷大。即使只有一个零值,整个 MAPE 也会被污染为无穷大。实践中,部分团队会“忽略”零值点,但这会丢失需求爆发时的预测信息,造成评估偏差。
4. 误差指标选型决策流程
以下 SVG 流程图展示了在供应链预测中如何根据需求特征选择最合适的误差指标:
5. 各指标在间歇需求中的数值表现对比
以下 SVG 图展示一个模拟间歇需求序列上各指标的数值表现,直观对比不同指标对零值和高值误差的反应:
6. 选型建议与工程实践要点
- 间歇需求首选:sMAPE 或 MASE。 sMAPE 提供百分比解释性,适合管理层汇报;MASE 以朴素预测为基准,适合模型选型对比。
- 避免单独使用 MAPE。 在间歇需求中,MAPE 会因零值而失效。如果业务强制要求百分比指标,应使用 sMAPE 替代。
- MAE 和 RMSE 作为辅助指标。 它们保留原始量纲,适合评估库存成本等实际业务影响,但无法跨 SKU 对比。
- 组合使用。 推荐在间歇需求场景中同时报告 sMAPE 和 MASE,前者用于业务沟通,后者用于模型竞赛。
- 注意 sMAPE 的 0/0 边界。 当实际值和预测值同时为零时,sMAPE 的分子分母均为零。实践中可约定该点误差为 0,或使用 MASE 作为兜底。
工程建议:在代码实现中,建议对 sMAPE 添加 epsilon 平滑(如 1e-10)避免除零异常;对 MASE 需预先计算朴素预测的 MAE,并确保训练集和测试集使用相同的基准。