销量预测评估指标
一、背景
在零售、供应链等场景中,销量预测的准确性直接影响库存管理、成本控制和客户满意度:
- 预测偏低:可能导致缺货(损失销售额和客户信任)。
- 预测偏高:导致库存积压(增加仓储成本或商品损耗)。
- 长尾问题:存在大量低销量商品(如长尾商品),传统指标易受异常值干扰。
需通过多维指标评估预测模型表现,平衡高低销量商品的误差影响。
以下符号含义:
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可根据实际业务需求调整指标权重或添加自定义规则,比如通过缺货/损耗带来的单位成本加权。