销量预测评估指标
销量预测评估指标
一、背景
在零售、供应链等场景中,销量预测的准确性直接影响库存管理、成本控制和客户满意度:
- 预测偏低:可能导致缺货(损失销售额和客户信任)。
- 预测偏高:导致库存积压(增加仓储成本或商品损耗)。
- 长尾问题:存在大量低销量商品(如长尾商品),传统指标易受异常值干扰。
需通过多维指标评估预测模型表现,平衡高低销量商品的误差影响。
以下符号含义:
f : f o r e c a s t d : a c t u a l d e m a n d \begin{aligned} f&: forecast\\ d&: actual demand \end{aligned} fd:forecast:actualdemand
二、准确率评估指标
1. MAE(Mean Absolute Error,平均绝对误差)
公式:
M A E = 1 n ∑ i = 1 n ∣ f i − d i ∣ MAE = \frac{1}{n} \sum_{i=1}^{n} | f_i - d_i | MAE=n1i=1∑n∣fi−di∣
-
优点:
- 直观易解释(与原始数据同量纲)。
- 对异常值不敏感,鲁棒性强。
-
缺点:
- 无法反映误差方向(正负抵消)。
- 对大误差惩罚力度不足。
-
适用场景:
- 初步评估整体误差规模,低计算成本需求场景。
2. MSE(Mean Squared Error,均方误差) & RMSE(Root MSE,均方根误差)
公式:
MSE = 1 n ∑ i = 1 n ( f i − d i ) 2 , RMSE = MSE \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (f_i - d_i)^2, \quad \text{RMSE} = \sqrt{\text{MSE}} MSE=n1i=1∑n(fi−di)2,RMSE=MSE
-
优点:
- 对大误差敏感,强化惩罚(如缺货风险高的场景)。
-
缺点:
- 量纲与原始数据不一致(需结合业务解释)。
- 对异常值敏感(如低销量商品的大偏差)。
-
适用场景:
- 重视极端误差的模型优化(如高销量商品)。
3. MAPE(Mean Absolute Percentage Error,平均绝对百分比误差)
公式:
MAPE = 100 % n ∑ i = 1 n ∣ f i − d i d i ∣ \text{MAPE} = \frac{100\%}{n} \sum_{i=1}^{n} \left| \frac{f_i - d_i}{d_i} \right| MAPE=n100%i=1∑n difi−di
-
优点:
- 无量纲,便于跨量级比较(如高低销量商品)。
-
缺点:
- 实际值 d i = 0 d_i = 0 di=0 时无法计算。
- 低估高销量商品的误差,高估低销量误差。
-
适用场景:
- 实际值稳定且远离零值的场景。
4. WAPE(Weighted Absolute Percentage Error,加权绝对百分比误差)
公式:
WAPE = ∑ i = 1 ′ ′ ∣ f i − d i ∣ ∑ i = 1 n d i × 100 % \text{WAPE} = \frac{\sum_{i=1}^{''} | f_i - d_i |}{\sum_{i=1}^{n} d_i} \times 100\% WAPE=∑i=1ndi∑i=1′′∣fi−di∣×100%
- 优点:
- 避免零分母问题,通过总量加权降低低销量异常值影响。
- 更关注高销量商品的误差贡献。
适用场景: - 长尾分布数据(如零售行业)。
5. SMAPE(Symmetric MAPE,对称平均绝对百分比误差)
公式:
SMAPE = 100 % n ∑ i = 1 n ∣ f i − d i ∣ ( ∣ f i ∣ + ∣ d i ∣ ) / 2 \text{SMAPE} = \frac{100\%}{n} \sum_{i=1}^{n} \frac{|f_i - d_i|}{(|f_i| + |d_i|)/2} SMAPE=n100%i=1∑n(∣fi∣+∣di∣)/2∣fi−di∣
- 优点:
- 对称处理预测值与实际值,避免偏向性。
- 缺点:
- 当 f i = d i = 0 f_i = d_i = 0 fi=di=0 时计算结果不稳定。
- 低实际值(如 d i ≈ 0 d_i \approx 0 di≈0)会导致异常高误差。
- 适用场景:
- 预测值与实际值均远离零的场景。
三、偏差率评估指标
1. Bias(平均偏差)
公式:
Bias = 1 n ∑ i = 1 n ( f i − d i ) \text{Bias} = \frac{1}{n} \sum_{i=1}^{n} (f_i - d_i) Bias=n1i=1∑n(fi−di)
-
优点:
- 直观反映整体预测偏高(正偏差)或偏低(负偏差)。
-
缺点:
- 正负误差抵消,无法反映波动性。
- 量纲依赖(需结合业务阈值判断)。
-适用场景:
- 初步判断模型预测方向性偏差。
2. MPE(Mean Percentage Error,平均百分比误差)
公式:
MPE = 100 % n ∑ i = 1 n f i − d i d i \text{MPE} = \frac{100\%}{n} \sum_{i=1}^{n} \frac{f_i - d_i}{d_i} MPE=n100%i=1∑ndifi−di
-
优点:
- 反映偏差方向(正/负)。
-
缺点:
- 零分母问题,低销量误差易被放大。
- 误差方向可能相互抵消(如高低销量混合)。
-
适用场景:
- 实际值稳定且远离零的场景(需过滤低销量商品)。
3. MdPE(Median Percentage Error,中位数百分比误差)
公式:
MdPE = Median ( f i − d i d i × 100 % ) \text{MdPE} = \text{Median}\left( \frac{f_i - d_i}{d_i} \times 100\% \right) MdPE=Median(difi−di×100%)
- 优点:
- 抗异常值干扰(如低销量商品的大偏差)。
- 缺点:
- 忽略长尾分布的整体偏差趋势(如案例中少数高销量商品主导结果)。
适用场景: - 异常值较多的场景,需快速了解典型偏差。
- 忽略长尾分布的整体偏差趋势(如案例中少数高销量商品主导结果)。
4. WPE(Weighted Percentage Error,加权百分比误差)
公式:
WPE = ∑ i = 1 n ( f i − d i ) ∑ i = 1 n d i × 100 % \text{WPE} = \frac{\sum_{i=1}^{n} (f_i - d_i)}{\sum_{i=1}^{n} d_i} \times 100\% WPE=∑i=1ndi∑i=1n(fi−di)×100%
-
优点:
- 全局偏差评估,削弱低销量异常值影响。
- 避免分母为零问题。
-
缺点:
- 无法反映个体商品偏差方向。
-
适用场景:
- 关注整体库存成本或营收影响的场景。
四、指标对比与选型建议
指标 | 核心特点 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|
MAE | 绝对误差均值 | 鲁棒性强,易解释 | 忽略误差方向 | 初步评估误差规模 |
RMSE | 平方误差均值根 | 惩罚大误差 | 对异常值敏感 | 极端误差成本高的场景 |
WAPE | 加权绝对百分比误差 | 全局视角,抗低销量异常值 | 忽略个体偏差方向 | 长尾分布(如零售行业) |
Bias | 平均偏差 | 反映整体偏高/偏低 | 正负抵消,依赖量纲 | 初步判断预测方向 |
MPE | 平均百分比误差 | 反应偏差方向和百分比 | 异常值/低销敏感 | 实际值稳定且远离零的场景 |
MdPE | 中位数百分比误差 | 抗异常值 | 掩盖长尾分布偏差 | 异常值较多场景 |
WPE | 加权百分比误差 | 全局偏差评估,避免零分母 | 无法区分个体偏差 | 整体库存成本优化 |
五、业务指标
业内一般WAPE使用比较多,抗异常值又能评估整体准确率。一般准确率定义: a c c = 1 − W A P E acc=1-WAPE acc=1−WAPE。
也可以对WAPE进行正负误差分解,分别评估预测偏高和预测偏低的影响。以下是我自定义的指标:
N M A P E = ∑ i = 1 n m a x ( d i − f i , 0 ) ∑ i = 1 n d i × 100 % P M A P E = ∑ i = 1 n m a x ( f i − d i , 0 ) ∑ i = 1 n d i × 100 % W A P E = N A M P E + P M A P E \begin{align} NMAPE&=\frac{\sum_{i=1}^n max(d_i-f_i, 0)}{\sum_{i=1}^n d_i}\times100\%\\ PMAPE&=\frac{\sum_{i=1}^n max(f_i-d_i, 0)}{\sum_{i=1}^n d_i}\times100\%\\ WAPE&=NAMPE+PMAPE \end{align} NMAPEPMAPEWAPE=∑i=1ndi∑i=1nmax(di−fi,0)×100%=∑i=1ndi∑i=1nmax(fi−di,0)×100%=NAMPE+PMAPE
WAPE本质上是使用销量对MAPE加权:
W A P E = ∑ w e i g h t i ∣ f i − d i ∣ d i ; ∑ w e i g h t i = 1 , w e i g h t i = d i ∑ d i = ∑ d i ∑ d i ∣ f i − d i ∣ d i = ∑ ∣ f i − d i ∣ ∑ d i \begin{aligned} WAPE&=\sum weight_i \frac{|f_i-d_i|}{d_i}; \qquad \sum weight_i=1,\quad weight_i=\frac{d_i}{\sum d_i}\\ &=\sum \frac{d_i}{\sum d_i}\frac{|f_i-d_i|}{d_i}\\ &=\frac{\sum |f_i-d_i|}{\sum d_i} \end{aligned} WAPE=∑weightidi∣fi−di∣;∑weighti=1,weighti=∑didi=∑∑dididi∣fi−di∣=∑di∑∣fi−di∣
w e i g h t weight weight可根据实际业务需求调整指标权重或添加自定义规则,比如通过缺货/损耗带来的单位成本加权。