天天看點

機器學習-時間序列預測(三)指數平滑

一、概述

移動平均法的預測值實質上是以前觀測值的權重和,且對不同時期的資料給予相同的權重。這往往不符合實際情況。

指數平滑法則對移動平均法進行了改進和發展,其應用較為廣泛。

基本思想都是:預測值是以前觀測值的權重和,且對不同的資料給予不同的權,新資料給較大的權,舊資料給較小的權。

根據平滑次數不同,指數平滑法分為:一次指數平滑法、二次指數平滑法和三次指數平滑法等。

一次指數平滑法針對沒有趨勢和季節性的序列,

二次指數平滑法針對有趨勢但沒有季節性的序列,

三次指數平滑法針對有趨勢也有季節性的序列。“Holt-Winters”有時特指三次指數平滑法。

一次指數平滑法:

一次指數平滑法的遞推關系如下:

機器學習-時間序列預測(三)指數平滑

,其中,

機器學習-時間序列預測(三)指數平滑

其中,是時間步長i(了解為第i個時間點)上經過平滑後的值,  是這個時間步長上的實際資料。  可以是0和1之間的任意值,它控制着新舊資訊之間的平衡:當  接近1,就隻保留目前資料點;當  接近0時,就隻保留前面的平滑值(整個曲線都是平的)。我們展開它的遞推關系式:

機器學習-時間序列預測(三)指數平滑

可以看出,在指數平滑法中,所有先前的觀測值都對目前的平滑值産生了影響,但它們所起的作用随着參數  的幂的增大而逐漸減小。那些相對較早的觀測值所起的作用相對較小。同時,稱α為記憶衰減因子可能更合适——因為α的值越大,模型對曆史資料“遺忘”的就越快。從某種程度來說,指數平滑法就像是擁有無限記憶(平滑視窗足夠大)且權值呈指數級遞減的移動平均法。一次指數平滑所得的計算結果可以在資料集及範圍之外進行擴充,是以也就可以用來進行預測。預測方式為:

機器學習-時間序列預測(三)指數平滑
機器學習-時間序列預測(三)指數平滑

是最後一個已經算出來的值。h等于1代表預測的下一個值。

 二次指數平滑法

在介紹二次指數平滑前介紹一下趨勢的概念。

趨勢,或者說斜率的定義很簡單:b=Δy/Δx,其中Δx為兩點在x坐标軸的變化值,是以對于一個序列而言,相鄰兩個點的Δx=1,是以b=Δy=y(x)-y(x-1)。 除了用點的增長量表示,也可以用二者的比值表示趨勢。比如可以說一個物品比另一個貴20塊錢,等價地也可以說貴了5%,前者稱為可加的(addtive),後者稱為可乘的(multiplicative)。在實際應用中,可乘的模型預測穩定性更佳,但是為了便于了解,我們在這以可加的模型為例進行推導。 

指數平滑考慮的是資料的baseline,二次指數平滑在此基礎上将趨勢作為一個額外考量,保留了趨勢的詳細資訊。即我們保留并更新兩個量的狀态:平滑後的信号和平滑後的趨勢。公式如下:

機器學習-時間序列預測(三)指數平滑
機器學習-時間序列預測(三)指數平滑

第二個等式描述了平滑後的趨勢。目前趨勢的未平滑“值”(  )是目前平滑值(  )和上一個平滑值(  )的差;也就是說,目前趨勢告訴我們在上一個時間步長裡平滑信号改變了多少。要想使趨勢平滑,我們用一次指數平滑法對趨勢進行處理,并使用參數  (了解:對  的處理類似于一次平滑指數法中的  ,即對趨勢也需要做一個平滑,臨近的趨勢權重大)。

為獲得平滑信号,我們像上次那樣進行一次混合,但要同時考慮到上一個平滑信号及趨勢。假設單個步長時間内保持着上一個趨勢,那麼第一個等式的最後那項就可以對目前平滑信号進行估計。

若要利用該計算結果進行預測,就取最後那個平滑值,然後每增加一個時間步長就在該平滑值上增加一次最後那個平滑趨勢:

機器學習-時間序列預測(三)指數平滑

三次指數平滑法(holt-winters)

三次指數平滑就是Holt-Winters方法,不用說,它的提出肯定是和兩個叫Holt和Winters的人有關了。

Holt(1957)和Winters(1960)擴充了Holt的方法來捕捉季節性。Holt-Winters季節性方法包括預測方程和三個平滑方程 - 一個用于水準

機器學習-時間序列預測(三)指數平滑

,一個趨勢

機器學習-時間序列預測(三)指數平滑

和一個季節性成分

機器學習-時間序列預測(三)指數平滑

,具有相應的平滑參數

機器學習-時間序列預測(三)指數平滑

機器學習-時間序列預測(三)指數平滑

機器學習-時間序列預測(三)指數平滑

。我們用m表示季節性的頻率,即一年中的季節數。

例如,對于季度資料m = 4,月度資料m = 12。

這種方法有兩種變化,季節性成分的性質不同。當季節變化在整個系列中大緻恒定時,加法方法是優選的,而當季節變化與系列水準成比例變化時,乘法方法是優選的。使用加法方法,季節性成分以觀察到的序列的尺度以絕對值表示,并且在水準方程中,通過減去季節性成分對季節性調整系列進行季節性調整。在每年内,季節性成分将加起來大約為零。使用乘法方法,季節性成分以相對值(百分比)表示,系列通過除以季節性成分進行季節性調整。

當一個序列在每個固定的時間間隔中都出現某種重複的模式,就稱之具有季節性特征,而這樣的一個時間間隔稱為一個季節(了解:比如說在一個周内,銷量呈現出重複的模式)。一個季節的長度k為它所包含的序列點個數。

二次指數平滑考慮了序列的baseline和趨勢,三次就是在此基礎上增加了一個季節分量。類似于趨勢分量,對季節分量也要做指數平滑。比如預測下一個季節第3個點的季節分量時,需要指數平滑地考慮目前季節第3個點的季節分量、上個季節第3個點的季節分量...等等。詳細的有下述公式(累加法):

機器學習-時間序列預測(三)指數平滑
機器學習-時間序列預測(三)指數平滑
機器學習-時間序列預測(三)指數平滑

其中,  是指“周期性”部分。預測公式如下:

機器學習-時間序列預測(三)指數平滑
機器學習-時間序列預測(三)指數平滑

 是這個周期的長度。

參數選擇:

機器學習-時間序列預測(三)指數平滑

的值都位于[0,1]之間,可以多試驗幾次以達到最佳效果。當然,一些尋優方法,比如貝葉斯調參,網格調參可用于調整參數。

機器學習-時間序列預測(三)指數平滑

 ​初始值的選取對于算法整體的影響不是特别大,通常的取值為 

機器學習-時間序列預測(三)指數平滑

 累加時 

機器學習-時間序列預測(三)指數平滑

,累乘時 

機器學習-時間序列預測(三)指數平滑

 。

繼續閱讀