常用時序預測模型的R實現 一

預測模型本身會比較乾巴,所以儘量多用些現實應用實例。

一開始接觸預測模型算法是因爲公司澳洲分發中心的人員開支超預算了。大致是這麼個情況


柱狀圖顯示的是每天發出去的訂單量,藍色是兩班倒的日子,紅色是週末上班的日子,綠色是普通的shift。澳洲的物流小哥每個小時正常薪資在35-50間(軟妹幣175到250),週末雙倍,第二個shift(兩班倒)則每小時加15%。具體超支多少是商業機密這兒不方便說,總之已經超到管理層肉疼了。噢對了,兩班倒用的不是同一批僱員,所以另外還有一筆training cost,每個人35塊一小時,要培訓一週。

這張圖其實已經充分說明了問題出在哪裏。藍色的柱子,高度不是應該差不多是綠色的兩倍麼?兩班倒啊。可是並沒有,事實上,histogram告訴我們,有相當一部分兩班倒的日子其實完全可以用normal shift替代。


雖然mask掉了具體單量,但兩張圖的x軸是在同一個scale上的。大約一半的double shift其實並不必要。

經過和supply chain的director坦率而友好的交流,意識到問題的根本。物流中心是基於訂單量安排人手的,而訂單量的預測傳統上依賴finance部門。金融會計部門的同事是怎麼幹的呢?拿去年的訂單數據來,按照今年預期的growth,統統乘以同一個比率就得了。這麼簡單粗暴的方式能夠用那麼多年,自然有其合理性。零售業銷售數據是典型的additive time series,有強烈的seasonality。每年的假期基本上差不多是同一個時段,外部變量曾經也是穩定的。你跟我說你要搞啥exponential smoothing? autoregressive integrated moving average? 犯得着嗎,還不見得比我去年照搬過來的模式準呢。

可是這兩年,circumstances還真的變了。Amazon入侵,顧客羣體年輕化,銷售渠道網絡化,澳洲的零售商們日子越來越難過,怎麼辦?折扣不斷,降價不斷,天天降價,欲購從速哇。好端端的seasonality就變成了一個promotion-driven的dynamic regression模型。簡而言之,經濟不景氣的大趨勢要考慮到,季節性要考慮到,而最關鍵的,外部變量複雜了。網站更新版本會帶來流量增加,添加新型支付選項會提高轉化率,還有SEM,social media marketing,EDM。。。突然冒出一大堆新的變量,每個變量還有自己的內部小模型,比如更高營銷支出帶來的是diminishing returns而絕非線性迴歸,這可不是finance的那些同事能用Excel搞定的!

再說說預測的週期。之前簡略提到過,兩班倒的話,並不是能夠立即找到第二班的僱員來頂上去的,還有個一週左右的培訓週期。面臨訂單高峯無法及時處置的情況,物流中心也並非只有加班這個選項。還可以加packing benches來永久性的提高單位時間的訂單處理能力 -- 當然,這又有個lead time,需要數週之久,因爲需要安裝相應的硬件設施,購買軟件許可。所以預測週期一般而言需要在兩週內有比較高的精度,在三四周內有indicative的準確性。

以上是問題的大背景。

下一篇 常用時序預測模型的準備知識

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章