1、课程导论:为什么促销预测需要专门的误差指标?MAPE与sMAPE的核心差异概览
1.1 通用误差指标在促销场景下的“失灵”
在常规时间序列预测中,MAE(平均误差)和RMSE(均方根误差)是最常用的指标。然而,当业务场景切换到促销预测时,这些通用指标会暴露出严重的局限性:
- 量纲依赖:MAE/RMSE 的值受商品销量基数影响极大。一个日销1000件的爆品与一个日销10件的长尾品,误差值可能相差百倍,无法直接比较预测模型在不同SKU上的表现。
- 促销期权重大幅偏移:促销期间销量可能暴涨5-20倍,RMSE 由于对误差取平方,会过度放大促销期的高量误差,导致模型优化时“只顾大爆品,忽略常规品”。
- 业务解读困难:业务方(运营、采购)更关心“预测偏差了几个百分点”,而非“偏差了多少件”。百分比误差天然具有跨SKU、跨时段的可比性。
核心结论:促销预测的误差评估必须转向相对误差指标,即用百分比衡量预测偏离真实值的程度。MAPE 和 sMAPE 正是这一方向的两个代表性指标。
1.2 MAPE 与 sMAPE 的定义速览
| 指标 | 全称 | 计算公式(单点) | 取值范围 |
|---|---|---|---|
| MAPE | Mean Absolute Percentage Error | |A - F| / |A| × 100% |
[0%, +∞) |
| sMAPE | Symmetric Mean Absolute Percentage Error | |A - F| / ((|A| + |F|)/2) × 100% |
[0%, 200%] |
注:A = 实际值(Actual),F = 预测值(Forecast)。
从公式可以直观看出:
- MAPE 的分母只使用实际值
|A|。当实际值很小时,MAPE 会急剧膨胀甚至趋向无穷大。 - sMAPE 的分母使用实际值与预测值的平均值
(|A|+|F|)/2,通过引入预测值来“对称化”分母,避免 MAPE 在低实际值场景下的发散问题。
1.3 核心差异概览:一张图看懂选型关键
下面的 SVG 结构图从分母构造出发,对比 MAPE 与 sMAPE 在促销场景下的三个关键差异维度:零值/近零值鲁棒性、误差对称性、业务可解释性。
1.4 促销场景的特殊性:为什么“零值”和“近零值”是分水岭?
促销预测中,以下三种情况会频繁产生极低实际值:
- 清仓促销末期:库存几乎售罄,最后几天销量可能只有个位数甚至0。
- 赠品/换购活动:部分商品作为赠品单独记录销量,实际值可能为1或2件。
- 新品测试期:促销力度大但认知度低,销量可能只有几件。
在这些场景下,MAPE 会因为分母 |A| 过小而产生异常大的误差值(例如实际值=1,预测值=2,MAPE=100%),严重扭曲整体评估结果。sMAPE 由于分母同时包含预测值,即使实际值=1,预测值=2,sMAPE = |1-2|/((1+2)/2) = 66.7%,数值更合理、更稳定。
💡 实践建议:如果你的促销数据集包含大量“近零值”样本(例如超过5%的样本实际值 ≤ 5),sMAPE 是更安全的默认选择。如果数据集以中高销量商品为主,MAPE 的可解释性优势更突出。
1.5 本章小结:选型决策的第一层判断
| 判断维度 | MAPE 更优 | sMAPE 更优 |
|---|---|---|
| 数据零值/近零值比例 | 低(< 5%) | 高(≥ 5%) |
| 汇报对象 | 业务/运营团队(纯百分比) | 数据科学/算法团队(数学稳健性) |
| 误差对称性要求 | 不敏感 | 高(高估与低估需同等对待) |
| 跨SKU可比性 | 好(百分比天然无量纲) | 好(百分比天然无量纲) |