销量预测中的误差指标分析

引言

本文介绍了一些销量预测相关的误差指标. 它们可以被分为两类: 绝对误差和绝对百分比误差. 前2节介绍销量预测问题及相关概念. 第3节我们介绍3种绝对误差, 并比较它们对异常值的敏感性. 由于绝对误差不适合比较多个商品或多个时段的预测结果, 在第4节我们介绍3种百分比误差. 在这一节, 我们重点强调了它们的优点和缺陷. 第5节是误差指标比较结果的汇总. 在第6节中, 我们用一个例子充分说明了百分比误差容易引发的问题, 并提醒读者在实际中必须确认预测目标与误差的一致性. 在第7节, 我们给出一些结论和实际使用中的建议.

1. 销量预测

销量预测问题是供应链管理中的一个基本问题. 销量预测可用来指导商品采购, 新品立项, 销售计划, 库存平衡和资源调度等业务. 因此, 预测"效果"的好坏 将直接影响这些业务的质量(注: 不同业务可能要求不同的预测"效果"). 我们一般用预测销量和真实销量之间的误差来评估销量预测结果或模型的好坏. 直观地讲, 预测销量与真实销量越"接近"则误差越小, 反之则误差越大.

为方便描述, 我们考虑如下简化的销量预测问题.

销量预测 预测一个商品未来1到n天的销量. 用x_ty_t分别代表商品第t天的实际销量和预测销量, 其中t=1, 2, ..., n. 因此我们需要估计实际销量\{x_1, x_2, ... x_n\}与预测销量\{y_1, y_2, ... y_n\}之间的误差.

2. 基本概念

首先考虑第t天的实际销量x_t和预测销量y_t. 定义两种误差:

  • 绝对误差(Absolute Error): e_t = |x_t-y_t|.

  • 绝对百分比误差(Absolute Percentage Error): p_t = 100 e_t / x_t.

我们通过一个简单的例子来比较两种误差.

例. 假设 x_1=1000, y_1= 1020, x_2=1, y_2=11.

  • 绝对误差: e_1=20, e_2=10. 优点是能直接反映误差的大小; 缺点是依赖标度(Scale-dependent), 即, 它依赖观测值的标度(单位), 因此不适合比较不同商品或不同时段之间的误差.
  • 绝对百分比误差: p_1=2, p_2= 1000. 优点是不依赖标度(Scale-free); 缺点是要求x_t\neq 0, 而这个条件在实际中往往不满足. 此外, 即使满足条件x_t\neq 0, 当x_t比较小时, 容易造成p_t = 100e_t /x_t非常大(从而严重影响总体误差).

3. 绝对误差

下面考虑实际销量\{x_1, x_2, ... x_n\}与预测销量\{y_1, y_2, ... y_n\}之间的误差指标. 我们先介绍三种绝对误差指标.

  • 平均绝对误差(Mean Absolute Error - MAE)

    \text{MAE} = \frac{1}{n}\sum_{t=1}^n e_t

  • 几何平均绝对误差(Geometric Mean Absolute Error - GMAE)

\text{GMAE} = \left(\Pi_{t=1}^n e_t\right)^{\frac{1}{n}}

  • 根均方误差(Root Mean Square Error - RMSE)

\text{RMSE} = \sqrt{\frac{1}{n}\sum_{t=1}^n e_t^2}

误差比较

  1. 可以证明: \text{RMSE} \geq \text{MAE} \geq \text{GMAE}. 这个关系也体现了它们对异常值的敏感程度(从左到右, 从高到低).
  2. GMAE对异常值不太敏感, 其误差值比较稳定, 因而适合用来比较预测模型的优劣. 但它要求e_t\neq 0(否则GMAE=0). 此外, 由于需要开n次根, 其计算相对MAE耗时较大.
  3. RMSE和MAE对异常值比较敏感. 换句话说, 单个时段的绝对误差e_t可能会较大地影响整体误差, 从而导致误差值会随着预测值的变化呈现较大的波动. 因此, 在使用中我们需要先剔除异常值.
  4. 由于绝对误差依赖标度, 它们不适合用来比较不同商品或不同时期预测结果的误差水平.

4. 绝对百分比误差

为了克服绝对误差依赖标度的缺点, 一个自然的想法是考虑百分比误差. 在实际使用中, 人们常常盲目地使用直观易懂的误差指标(例如下文提到的MAPE), 并忽略了百分比误差自身的一些缺陷, 从而导致误差的降低并不能带来期望中预测效果的提升. 本节我们重点强调绝对百分比误差的缺陷以及使用时需要注意的事项.

4.1 平均绝对百分比误差(Mean Absolute Percentage Error - MAPE)

\text{MAPE} = \frac{1}{n}\sum_{t=1}^n p_t

  • 优点

    直观, 容易计算

  • 缺点

    1. 它要求x_t\neq 0, 否则p_t=+\infty, 从而导致\text{MAPE}=+\infty.
    2. MAPE没有上界, 因此对异常值敏感. 当某个p_t非常大时, 会导致MAPE的值也显著变大.
    3. 如果使用MAPE作为误差评价指标, p_t的不对称性会导致预测销量低于实际销量(解释如下).
  • p_t的不对称性

    给定实际销量x_t, 当预测销量y_t从0变化到+\infty时, 分别考虑"低估"和"高估"时p_t的上界.

    • 低估: y_t < x_t, 此时p_t\leq 100, 即p_t上界为100;
    • 高估: y_t > x_t, 此时p_t\leq +\infty, 即p_t上界为无穷大.

    由于高估会带来较大惩罚, 为了最小化MAPE值, 算法会倾向低估, 从而导致预测的销量偏低.

4.2 对称的MAPE (Symmetric Mean Absolute Percentage Error - SMAPE)

为了弥补p_t的不对称性, M3-竞赛[1]和IJCAI-17[2]数据挖掘竞赛采用了所谓"对称的"MAPE作为误差评价指标. 定义如下:

\text{SMAPE} = \frac{1}{n} \sum_{t=1}^{n} p'_t, \quad \text{其中 } p'_t = \frac{200e_t}{x_t + y_t}.

  • 优点

    1. 始终可计算(当x_t+y_t=0时, 定义p_t=0).
    2. SMAPE有界, 即: 0 \leq \text{SMAPE} \leq 200.
    3. 形式上满足对称性, 即低估和高估时p'_t的上界都是200.
  • 缺点

    1. p'_t的意义不直观, 缺乏解释性.
    2. 在实际的销量预测中, 由于销量的上界通常是有限的(通过经验可以预估), 因而即使出现"高估"的情形, 预测销量y_t一般不会超过实际销量的常数倍(例如不超过10倍). 从这个角度来看, 高估时误差p'_t的上界一般低于低估时对应的上界. 换句话说, 低估带来的惩罚比高估大. 因此如果使用SMAPE作为误差指标, 其预测销量一般会高于实际销量.

4.3 反正切绝对百分比误差(Mean Arctangent Absolute Percentage Error - MAAPE)

Sungil Kim和Heeyoung Kim[3]提出了一个有意思的误差指标MAAPE. 与MAPE相比, 它把p_t/100 = e_t/x_t理解成直角三角形中的切角(见下图).

maape-motivation.png

因此\theta_t = \arctan(e_t/x_t). MAAPE即为\theta_t的均值:

\text{MAAPE} = \frac{1}{n}\sum_{t=1}^n \theta_t.

  • 优点

    1. 始终可计算.
    2. MAAPE有界, 即: 0 \leq \text{MAAPE} \leq \frac{\pi}{2}.
    3. 有较好的可解释性.
  • 缺点

    1. 如果用MAAPE作为误差指标, 其预测销量一般会低于实际销量. (可以验证: 低估时\theta_t的上界为\pi/4, 而高估时对应的上界为\pi/2.)

5. 误差指标汇比较结果汇总

绝对误差

误差指标 中文 优点 缺点 说明
MAE (算术)平均绝对误差 直观 对异常值敏感 需要确认预测的目标与误差指标是否一致
GMAE 几何平均绝对误差 对异常值不敏感 1. e_t\neq 0; 2. 计算相对耗时 需要确认预测的目标与误差指标是否一致
RMSE 根均方误差 - 对异常值非常敏感 需要确认基本假设(例如误差是正态分布)

绝对百分比误差

误差指标 中文 优点 缺点 说明
MAPE 平均百分比绝对误差 直观/容易计算 1. 对异常值敏感; 2. x_t\neq 0; 3. 预测值偏小 不推荐使用
SMAPE 对称的平均绝对百分比误差 1. 始终可计算; 2.形式上对称 1. 实际中预测值偏大; 2. 解释性差 需要确认预测的目标与误差指标是否一致
MAAPE 平均反正切绝对百分比误差 1. 始终可计算; 2. 有一定的解释性 预测值偏小 需要确认预测的目标与误差指标是否一致

说明

  1. 在实际中我们不能盲目地使用已知的误差指标, 也不存在"万金油"的误差指标. 我们采用(设计)的误差指标必须与业务目标一致. 即, 误差指标的提升会带来业务目标的提升.
  2. 使用百分比误差时, 必须注意误差指标会引发预测销量比实际销量偏小或者偏大的风险.

6. 示例

我们用一个简单的例子来说明百分比误差引起的预测值偏大或偏小的问题.

. 假设n=1000, 实际销量为1-100的均匀分布, 即x_t=t \mod 100, 其中t=1, 2, \ldots, n(若x_t=0, 令x_t=100). 我们的预测模型为y_t=k (k为1-100之间的整数).

下面考虑三种误差指标MAPE, SMAPE和MAAPE. 它们对应的最优预测结果如下图所示.

Fig. 最优预测结果
误差指标 最优k值 误差值 结论
MAPE 8 85.99 严重偏低(销量的均值为50.5)
SMAPE 56 56.33 偏高
MAAPE 41 0.5272 偏低

警告 MAPE是业界使用最多的误差指标, 其预测模型产生的预测结果会明显偏低, 因此我们在使用中一定要确认预测目标与误差指标的一致性!

7. 总结

  1. RMSE经常作为预测模型的误差指标(损失函数), 其理论依据是建立在误差满足正态分布的假设下. 首先我们要验证用于拟合的样本是否满足该条件. 其次, RMSE对异常值敏感, 为了获得稳定的效果, 我们一般需要对数据做一些平滑处理.
  2. 百分比误差MAPE(以及类似的变种)是被滥用的误差指标. 如果你正在使用, 请确保业务方了解该误差指标带来的风险.
  3. 没有万金油的误差指标, 应该根据自己实际的业务目标来确定销量预测的误差指标. 一个基本原则是确定误差指标的提升能带来业务的提升.
  4. 尽量不要使用单一的目标来衡量预测效果.
  5. 尽量不要使用单一的预测结果去支持多种业务.

参考文献


  1. S. Makridakis and M. Hibon. The m3-competition: Results, conclusions and implications.
    International Journal of Forecasting, 16:451-476, 2000.

  2. IJCAI' 17 Competition. https://tianchi.aliyun.com/competition/information.htm?spm=5176.100067.5678.2.2f6f5933auxKS4&raceId=231591&_lang=zh_CN

  3. Sungil Kim and Heeyoung Kim. A new metric of absolute percentage error for intermit-
    tent demand forecasts. International Journal of Forecasting, 32:669-679, 2016.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,881评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,052评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,598评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,407评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,823评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,872评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,037评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,778评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,505评论 1 247
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,745评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,233评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,231评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,141评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,939评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,954评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,784评论 2 275

推荐阅读更多精彩内容