3、sMAPE定义与数学公式:对称化处理如何避免分母为零?
sMAPE(Symmetric Mean Absolute Percentage Error,对称平均百分比误差)在促销预测场景中,是为了弥补MAPE在分母为零或预测值/实际值差异极大时的缺陷而提出的改进指标。其核心思想是通过对称化处理,将分母从单一的实际值|A|改为|A| + |F|,从而在数学上规避分母为零的风险,并平衡误差的惩罚方向。
3.1 sMAPE的数学定义
对于包含n个样本的预测集,sMAPE的标准计算公式如下:
sMAPE = (200% / n) * Σ |F_i - A_i| / (|A_i| + |F_i|)
其中:
- A_i:第i个样本的实际值(Actual)
- F_i:第i个样本的预测值(Forecast)
- n:样本总数
- 200%:对称化缩放因子,使结果范围落在[0%, 200%]之间
关键区别:与MAPE的分母为|A_i|不同,sMAPE的分母为|A_i| + |F_i|。当实际值A_i=0时,只要预测值F_i≠0,分母|F_i|>0,公式依然可计算,从根本上解决了“除零”问题。
3.2 对称化处理如何避免分母为零?
sMAPE的对称化设计通过以下三种机制保障分母不为零:
| 场景 | MAPE分母 | sMAPE分母 | sMAPE是否可计算 |
|---|---|---|---|
| A=0, F≠0 | |A|=0 → 除零错误 | |0|+|F| = |F| > 0 | 是 |
| A≠0, F=0 | |A|>0 → 可计算 | |A|+|0| = |A| > 0 | 是 |
| A=0, F=0 | |A|=0 → 除零错误 | |0|+|0| = 0 → 仍为除零 | 否(需特殊处理) |
⚠ 边界情况:当实际值和预测值同时为0时,sMAPE的分母仍为0。在实际促销预测中,若某商品在促销期间销量为0且预测也为0(如清仓商品),建议在计算前剔除该样本,或约定该点误差为0%。
3.3 对称化处理的数学意义
sMAPE的对称性体现在误差惩罚的平衡上:
- 双向惩罚:预测值过高(F > A)和预测值过低(F < A)在分母中受到对称的缩放影响,不会像MAPE那样对低估(A大F小)产生不对称的放大效应。
- 有界性:由于|F-A| ≤ |A|+|F|(三角不等式),sMAPE的值始终在[0%, 200%]之间,便于跨品类、跨促销活动对比。
- 促销场景适配:促销期间常出现销量突增(A很大)或清仓归零(A=0),sMAPE的分母设计能稳定处理这些极端值。
3.4 sMAPE分母稳定性对比流程图
下图展示了MAPE与sMAPE在分母计算路径上的核心差异,突出sMAPE如何通过引入预测值F来兜底分母为零的风险:
3.5 促销预测中的实际案例
以下表格对比了MAPE与sMAPE在典型促销场景下的表现:
| 促销场景 | 实际值A | 预测值F | MAPE | sMAPE | 说明 |
|---|---|---|---|---|---|
| 新品促销(零基础) | 0 | 100 | ∞(除零) | 200% | sMAPE可计算,但误差较大 |
| 清仓促销(预测为零) | 50 | 0 | 100% | 200% | sMAPE对称惩罚,误差翻倍 |
| 常规促销(正常波动) | 200 | 180 | 10% | 10.53% | 两者接近,sMAPE略高 |
| 爆款促销(低估) | 1000 | 500 | 50% | 66.67% | sMAPE惩罚更均衡 |
💡 选型建议:在促销预测中,若数据集中存在大量零销量商品(如新品、清仓品),sMAPE是比MAPE更稳健的选择。但需注意sMAPE在A=0且F=0时的边界处理,建议在数据预处理阶段统一约定。