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来兜底分母为零的风险:

MAPE vs sMAPE 分母稳定性对比 MAPE 分母:|A| A=0 → 分母为0 → 错误 A≠0 → 分母稳定 sMAPE 分母:|A|+|F| A=0, F≠0 → 分母=|F|>0 A=0, F=0 → 需特殊处理 A≠0 → 分母稳定 结论:sMAPE通过引入|F|项,将分母为零的边界条件从“A=0”收窄至“A=0且F=0” 在促销预测中,A=0且F=0的情况极少,通常可安全剔除或约定为0%误差

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时的边界处理,建议在数据预处理阶段统一约定。