銷量預測中的誤差指標分析

引言

本文介紹了一些銷量預測相關的誤差指標. 它們可以被分為兩類: 絕對誤差和絕對百分比誤差. 前2節(jié)介紹銷量預測問題及相關概念. 第3節(jié)我們介紹3種絕對誤差, 并比較它們對異常值的敏感性. 由于絕對誤差不適合比較多個商品或多個時段的預測結果, 在第4節(jié)我們介紹3種百分比誤差. 在這一節(jié), 我們重點強調(diào)了它們的優(yōu)點和缺陷. 第5節(jié)是誤差指標比較結果的匯總. 在第6節(jié)中, 我們用一個例子充分說明了百分比誤差容易引發(fā)的問題, 并提醒讀者在實際中必須確認預測目標與誤差的一致性. 在第7節(jié), 我們給出一些結論和實際使用中的建議.

1. 銷量預測

銷量預測問題是供應鏈管理中的一個基本問題. 銷量預測可用來指導商品采購, 新品立項, 銷售計劃, 庫存平衡和資源調(diào)度等業(yè)務. 因此, 預測"效果"的好壞 將直接影響這些業(yè)務的質(zhì)量(注: 不同業(yè)務可能要求不同的預測"效果"). 我們一般用預測銷量和真實銷量之間的誤差來評估銷量預測結果或模型的好壞. 直觀地講, 預測銷量與真實銷量越"接近"則誤差越小, 反之則誤差越大.

為方便描述, 我們考慮如下簡化的銷量預測問題.

銷量預測 預測一個商品未來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. 優(yōu)點是能直接反映誤差的大小; 缺點是依賴標度(Scale-dependent), 即, 它依賴觀測值的標度(單位), 因此不適合比較不同商品或不同時段之間的誤差.
  • 絕對百分比誤差: p_1=2, p_2= 1000. 優(yōu)點是不依賴標度(Scale-free); 缺點是要求x_t\neq 0, 而這個條件在實際中往往不滿足. 此外, 即使?jié)M足條件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}. 這個關系也體現(xiàn)了它們對異常值的敏感程度(從左到右, 從高到低).
  2. GMAE對異常值不太敏感, 其誤差值比較穩(wěn)定, 因而適合用來比較預測模型的優(yōu)劣. 但它要求e_t\neq 0(否則GMAE=0). 此外, 由于需要開n次根, 其計算相對MAE耗時較大.
  3. RMSE和MAE對異常值比較敏感. 換句話說, 單個時段的絕對誤差e_t可能會較大地影響整體誤差, 從而導致誤差值會隨著預測值的變化呈現(xiàn)較大的波動. 因此, 在使用中我們需要先剔除異常值.
  4. 由于絕對誤差依賴標度, 它們不適合用來比較不同商品或不同時期預測結果的誤差水平.

4. 絕對百分比誤差

為了克服絕對誤差依賴標度的缺點, 一個自然的想法是考慮百分比誤差. 在實際使用中, 人們常常盲目地使用直觀易懂的誤差指標(例如下文提到的MAPE), 并忽略了百分比誤差自身的一些缺陷, 從而導致誤差的降低并不能帶來期望中預測效果的提升. 本節(jié)我們重點強調(diào)絕對百分比誤差的缺陷以及使用時需要注意的事項.

4.1 平均絕對百分比誤差(Mean Absolute Percentage Error - MAPE)

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

  • 優(yōu)點

    直觀, 容易計算

  • 缺點

    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]數(shù)據(jù)挖掘競賽采用了所謂"對稱的"MAPE作為誤差評價指標. 定義如下:

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

  • 優(yōu)點

    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. 在實際的銷量預測中, 由于銷量的上界通常是有限的(通過經(jīng)驗可以預估), 因而即使出現(xiàn)"高估"的情形, 預測銷量y_t一般不會超過實際銷量的常數(shù)倍(例如不超過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.

  • 優(yōu)點

    1. 始終可計算.
    2. MAAPE有界, 即: 0 \leq \text{MAAPE} \leq \frac{\pi}{2}.
    3. 有較好的可解釋性.
  • 缺點

    1. 如果用MAAPE作為誤差指標, 其預測銷量一般會低于實際銷量. (可以驗證: 低估時\theta_t的上界為\pi/4, 而高估時對應的上界為\pi/2.)

5. 誤差指標匯比較結果匯總

絕對誤差

誤差指標 中文 優(yōu)點 缺點 說明
MAE (算術)平均絕對誤差 直觀 對異常值敏感 需要確認預測的目標與誤差指標是否一致
GMAE 幾何平均絕對誤差 對異常值不敏感 1. e_t\neq 0; 2. 計算相對耗時 需要確認預測的目標與誤差指標是否一致
RMSE 根均方誤差 - 對異常值非常敏感 需要確認基本假設(例如誤差是正態(tài)分布)

絕對百分比誤差

誤差指標 中文 優(yōu)點 缺點 說明
MAPE 平均百分比絕對誤差 直觀/容易計算 1. 對異常值敏感; 2. x_t\neq 0; 3. 預測值偏小 不推薦使用
SMAPE 對稱的平均絕對百分比誤差 1. 始終可計算; 2.形式上對稱 1. 實際中預測值偏大; 2. 解釋性差 需要確認預測的目標與誤差指標是否一致
MAAPE 平均反正切絕對百分比誤差 1. 始終可計算; 2. 有一定的解釋性 預測值偏小 需要確認預測的目標與誤差指標是否一致

說明

  1. 在實際中我們不能盲目地使用已知的誤差指標, 也不存在"萬金油"的誤差指標. 我們采用(設計)的誤差指標必須與業(yè)務目標一致. 即, 誤差指標的提升會帶來業(yè)務目標的提升.
  2. 使用百分比誤差時, 必須注意誤差指標會引發(fā)預測銷量比實際銷量偏小或者偏大的風險.

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之間的整數(shù)).

下面考慮三種誤差指標MAPE, SMAPE和MAAPE. 它們對應的最優(yōu)預測結果如下圖所示.

Fig. 最優(yōu)預測結果
誤差指標 最優(yōu)k值 誤差值 結論
MAPE 8 85.99 嚴重偏低(銷量的均值為50.5)
SMAPE 56 56.33 偏高
MAAPE 41 0.5272 偏低

警告 MAPE是業(yè)界使用最多的誤差指標, 其預測模型產(chǎn)生的預測結果會明顯偏低, 因此我們在使用中一定要確認預測目標與誤差指標的一致性!

7. 總結

  1. RMSE經(jīng)常作為預測模型的誤差指標(損失函數(shù)), 其理論依據(jù)是建立在誤差滿足正態(tài)分布的假設下. 首先我們要驗證用于擬合的樣本是否滿足該條件. 其次, RMSE對異常值敏感, 為了獲得穩(wěn)定的效果, 我們一般需要對數(shù)據(jù)做一些平滑處理.
  2. 百分比誤差MAPE(以及類似的變種)是被濫用的誤差指標. 如果你正在使用, 請確保業(yè)務方了解該誤差指標帶來的風險.
  3. 沒有萬金油的誤差指標, 應該根據(jù)自己實際的業(yè)務目標來確定銷量預測的誤差指標. 一個基本原則是確定誤差指標的提升能帶來業(yè)務的提升.
  4. 盡量不要使用單一的目標來衡量預測效果.
  5. 盡量不要使用單一的預測結果去支持多種業(yè)務.

參考文獻


  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. ?

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末会喝,一起剝皮案震驚了整個濱河市仰迁,隨后出現(xiàn)的幾起案子也物,更是在濱河造成了極大的恐慌编丘,老刑警劉巖唯灵,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钝鸽,死亡現(xiàn)場離奇詭異喷户,居然都是意外死亡唾那,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門褪尝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闹获,“玉大人,你說我怎么就攤上這事恼五〔郑” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵灾馒,是天一觀的道長茎用。 經(jīng)常有香客問我,道長睬罗,這世上最難降的妖魔是什么轨功? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮容达,結果婚禮上古涧,老公的妹妹穿的比我還像新娘。我一直安慰自己花盐,他們只是感情好羡滑,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布菇爪。 她就那樣靜靜地躺著,像睡著了一般柒昏。 火紅的嫁衣襯著肌膚如雪凳宙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天职祷,我揣著相機與錄音氏涩,去河邊找鬼。 笑死有梆,一個胖子當著我的面吹牛是尖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泥耀,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼饺汹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了爆袍?” 一聲冷哼從身側(cè)響起首繁,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陨囊,沒想到半個月后弦疮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蜘醋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年胁塞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片压语。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡啸罢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胎食,到底是詐尸還是另有隱情扰才,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布厕怜,位于F島的核電站衩匣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粥航。R本人自食惡果不足惜琅捏,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望递雀。 院中可真熱鬧柄延,春花似錦、人聲如沸缀程。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至滤奈,卻和暖如春秕衙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背僵刮。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鹦牛,地道東北人搞糕。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像曼追,于是被迫代替她去往敵國和親窍仰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 本文詳細說明了進行時間序列預測的步驟礼殊。 我們被隨處可見的模式所包圍驹吮,人們可以注意到四季與天氣的關系模式,以交通量計...
    等花花不開閱讀 1,260評論 0 4
  • 時間序列處理與應用 時間序列數(shù)據(jù)介紹 時間序列指的是同一個統(tǒng)計指標的數(shù)值按其發(fā)生的時間先后順序排列而構成的一組數(shù)列...
    Jachin111閱讀 1,511評論 0 6
  • 參考書目為安德森的《商務與經(jīng)濟統(tǒng)計》晶伦,以下為個人的學習總結碟狞,如果有錯誤歡迎指正。有需要本書pdf的婚陪,鏈接在本文末尾...
    愚盆閱讀 2,066評論 0 1
  • 表情是什么族沃,我認為表情就是表現(xiàn)出來的情緒。表情可以傳達很多信息泌参。高興了當然就笑了脆淹,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 124,187評論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者沽一,不喜歡去冒險盖溺,但是人生放棄了冒險,也就放棄了無數(shù)的可能铣缠。 ...
    yichen大刀閱讀 6,033評論 0 4