銷量預(yù)測中的誤差指標分析

引言

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

1. 銷量預(yù)測

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

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

銷量預(yù)測 預(yù)測一個商品未來1到n天的銷量. 用x_ty_t分別代表商品第t天的實際銷量和預(yù)測銷量, 其中t=1, 2, ..., n. 因此我們需要估計實際銷量\{x_1, x_2, ... x_n\}與預(yù)測銷量\{y_1, y_2, ... y_n\}之間的誤差.

2. 基本概念

首先考慮第t天的實際銷量x_t和預(yù)測銷量y_t. 定義兩種誤差:

  • 絕對誤差(Absolute Error): e_t = |x_t-y_t|.

  • 絕對百分比誤差(Absolute Percentage Error): p_t = 100 e_t / x_t.

我們通過一個簡單的例子來比較兩種誤差.

例. 假設(shè) 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ù)測銷量\{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}. 這個關(guān)系也體現(xiàn)了它們對異常值的敏感程度(從左到右, 從高到低).
  2. GMAE對異常值不太敏感, 其誤差值比較穩(wěn)定, 因而適合用來比較預(yù)測模型的優(yōu)劣. 但它要求e_t\neq 0(否則GMAE=0). 此外, 由于需要開n次根, 其計算相對MAE耗時較大.
  3. RMSE和MAE對異常值比較敏感. 換句話說, 單個時段的絕對誤差e_t可能會較大地影響整體誤差, 從而導(dǎo)致誤差值會隨著預(yù)測值的變化呈現(xiàn)較大的波動. 因此, 在使用中我們需要先剔除異常值.
  4. 由于絕對誤差依賴標度, 它們不適合用來比較不同商品或不同時期預(yù)測結(jié)果的誤差水平.

4. 絕對百分比誤差

為了克服絕對誤差依賴標度的缺點, 一個自然的想法是考慮百分比誤差. 在實際使用中, 人們常常盲目地使用直觀易懂的誤差指標(例如下文提到的MAPE), 并忽略了百分比誤差自身的一些缺陷, 從而導(dǎo)致誤差的降低并不能帶來期望中預(yù)測效果的提升. 本節(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, 從而導(dǎo)致\text{MAPE}=+\infty.
    2. MAPE沒有上界, 因此對異常值敏感. 當某個p_t非常大時, 會導(dǎo)致MAPE的值也顯著變大.
    3. 如果使用MAPE作為誤差評價指標, p_t的不對稱性會導(dǎo)致預(yù)測銷量低于實際銷量(解釋如下).
  • p_t的不對稱性

    給定實際銷量x_t, 當預(yù)測銷量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值, 算法會傾向低估, 從而導(dǎo)致預(yù)測的銷量偏低.

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. 在實際的銷量預(yù)測中, 由于銷量的上界通常是有限的(通過經(jīng)驗可以預(yù)估), 因而即使出現(xiàn)"高估"的情形, 預(yù)測銷量y_t一般不會超過實際銷量的常數(shù)倍(例如不超過10倍). 從這個角度來看, 高估時誤差p'_t的上界一般低于低估時對應(yīng)的上界. 換句話說, 低估帶來的懲罰比高估大. 因此如果使用SMAPE作為誤差指標, 其預(yù)測銷量一般會高于實際銷量.

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作為誤差指標, 其預(yù)測銷量一般會低于實際銷量. (可以驗證: 低估時\theta_t的上界為\pi/4, 而高估時對應(yīng)的上界為\pi/2.)

5. 誤差指標匯比較結(jié)果匯總

絕對誤差

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

絕對百分比誤差

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

說明

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

6. 示例

我們用一個簡單的例子來說明百分比誤差引起的預(yù)測值偏大或偏小的問題.

. 假設(shè)n=1000, 實際銷量為1-100的均勻分布, 即x_t=t \mod 100, 其中t=1, 2, \ldots, n(若x_t=0, 令x_t=100). 我們的預(yù)測模型為y_t=k (k為1-100之間的整數(shù)).

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

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

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

7. 總結(jié)

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

參考文獻


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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容