數據挖掘——時間序列算法之平滑法

前言

時間序列是許多數據挖掘任務重最常見的類型之一,同時也比較難處理。這篇記錄下我所理解下的時間序列模型的算法。注意,這不是特徵工程,而是算法(暫時是這樣理解的,畢竟目前還沒使用過這些方法做特徵工程)。
關於其他時間預測算法詳見我的其他博文:
1、平滑法
2、趨勢擬合法
3、組合模型
4、AR模型
5、MA模型
6、ARMA模型
7、ARIMA模型
8、ARCH模型
9、GARCH模型及其衍生模型

平滑法

1、簡述

所謂時間序列平滑預測是指用平均的方法,把時間序列中的隨機波動剔除掉,使序列變得比較平滑,以反映出其基本軌跡,並結合一定的模型進行預測。所平均的範圍可以是整個序列(整體平均數),也可以是序列中的一部分(局部平均數);所用平均數可以是簡單平均數,也可以是加權平均數。在一次平均之後,就局部平均而言,還可以進行第二次、第三次以至更多次的平均,進行多層次的平滑。

所以,平滑預測的方法也是多種多樣的。

平滑法常用於趨勢分析和預測,利用修勻技術,削弱短期隨機波動對序列的影響,使序列平滑化。根據所使用的平滑技術的不同,可具體分爲移動平均法和指數平滑法。

2、移動平均法

移動平均法是用一組最近的實際數據值來預測未來一期或幾期內公司產品的需求量、公司產能等的一種常用方法。移動平均法適用於即期預測。當產品需求既不快速增長也不快速下降,且不存在季節性因素時,移動平均法能有效地消除預測中的隨機波動,是非常有用的。------來自百度百科
移動平均法根據預測時使用的各元素的權重不同,可以分爲:**簡單移動平均法**和**加權移動平均法。**

2.1、簡單移動平均

簡單時間序列平滑法是指用簡單平均數進行預測的一類預測方法。當給定一組數據或觀測值後,這些數值的平均數的種類很多,常見的有算術平均數、幾何平均數、調和平均數、加權算術平均數、移動平均數與指數平滑平均數等。這些平均數各有各的計算方法,各有各的特點與用途,在使用平均法進行預測時,首先要判斷使用哪一種或哪幾種能夠滿足需要,然後再根據相應的計算方法求之。
  由於算術平均數、幾何平均數、調和平均數、加權算術平均數的計算方法相對其餘幾種來說,比較簡單,故常稱這幾種平均數的求法爲“簡單平均法”。


舉例:這裏僅使用算數平均數來求預測值:

對應公式:
F(t+1)=V(1)+V(2)+...+V(t)t(1)F(t + 1) = \frac{V(1)+V(2)+...+V(t)}{t}\tag{1}
其中V(t)是第t時刻的實際值,F(t+1)是使用平均值得到的未來預測值

例如:某家商店在2047年、2048年、2049年的限售量分別爲,25,35,30,那麼預測在2050年該家商店的限售量爲25+35+303=30\frac{25+35+30}{3}=30


上面的例子僅是使用了簡單的算數平均,當然還有更復雜些的計算方法(幾何平均數、調和平均數、加權算術平均數的計算方法相對其餘幾種)。

2.2、加權移動平均法

加權移動平均法就是根據同一個移動段內不同時間的數據對預測值得影響程度,分別寄予不同的係數以預測未來值。
從上面介紹的簡單移動平均算法可以明顯看出,不同時期都會被視爲同等重要,顯然這是不符合實際認知的,因爲距離當前時期較遠的時期對預測值的重要性比那些距離當前時期較近的時期小(有點繞),所以爲了改善這種情況,需要不同的對待移動期內的各個數據,對近期數據給予較大的權數,對較遠的數據給予較小的權數,這樣來彌補簡單移動平均法的不足。

數學描述:
Fn+1=i=nk1n+1Vixi(2)F_{n+1}= \sum_{i=n-k-1}^{n+1}V_{i}x_{i}\tag{2}
其中:Fn+1Viinkxii1F_{n+1}是預測值,V_{i}是第i期的實際值,n是本期數,k是移動跨期,x_{i}是第i期實際值的權重,且權重和等於1

注:用加權移動平均法求預測值,對近期的趨勢反映較敏感,但如果一組數據有明顯的季節性影響時,用加權移動平均法所得到的預測值可能會出現偏差。因此,有明顯的季節性變化因素存在時,最好不要加權。
看不懂?下面舉例:
  ----------------------------------------------------------------------------------------------------------------------
 例題:某商場1月份至11月份的實際銷售額如表所示。假定跨越期爲3個月,權數爲l、2、3,試用加權移動平均法預測12月份的銷售額

月份 銷售額 3個月的加權移動平均
1 38 -
2 45 -
3 35 38.83
4 49 43.67
5 70 43.67
6 43 57.17
7 46 53.00
8 55 49.00
9 45 50.00
10 68 48.5
11 64 58.17
12 62.17

解:(這裏k取3)
V4=335+245+1381+2+3=38.83V5=349+235+1451+2+3=43.67F(12)=364+268+1451+2+3=62.17V_{4}=\frac{3*35 + 2*45 +1*38}{1+2+3}=38.83\\ V_{5}=\frac{3*49 + 2*35 +1*45}{1+2+3}=43.67\\ ……\\ \\ \\ F(12)=\frac{3*64 + 2*68 +1*45}{1+2+3}=62.17

----------------------------------------------------------------------------------------------------------------------

3、指數平滑法

基本思想:最近的過去勢態,在某種程度上會持續到最近的未來,所以將較大的權重放在最近的數據上。

指數平滑法是生產預測中常用的一種方法。也用於中短期經濟發展趨勢預測,所有預測方法中,指數平滑是用得最多的一種。簡單的全期平均法是對時間數列的過去數據一個不漏地全部加以同等利用;移動平均法則不考慮較遠期的數據,並在加權移動平均法中給予近期資料更大的權重;而指數平滑法則兼容了全期平均和移動平均所長,不捨棄過去的數據,但是僅給予逐漸減弱的影響程度,即隨着數據的遠離,賦予逐漸收斂爲零的權數。--from 百度百科

也就是說指數平滑法是在移動平均法基礎上發展起來的一種時間序列分析預測法,它是通過計算指數平滑值,配合一定的時間序列預測模型對現象的未來進行預測。其原理是任一期的指數平滑值都是本期實際觀察值與前一期指數平滑值的加權平均。

3.1、一次指數平滑

數學表達:
St(1)=αyt+(1α)St1(1)(3)S_{t}^{(1)}=\alpha \cdot y_{t} +( 1- \alpha)\cdot S_{t-1}^{(1)} \tag{3}
其中,St(1)tyttSt1(1)t1α[0,1]S_{t}^{(1)}時間t的平滑值,y_{t}時間t的真實值,S_{t-1}^{(1)}時間t-1的平滑值, \alpha\subseteq [0,1]平滑參數。

可以看出指數平滑法數對移動平滑法的升級,即彌補了簡單平均法的不能體現各時期重要性的缺點,又彌補了加權平均法只能關注最近時期的缺點。

式(3)中各自成分其含義如下:

  • StS_{t}具有逐期追溯的性質,可包括全部數據,但實際計算時,僅需要兩個值,即yty_{t}St1(1)S_{t-1}^{(1)};
  • 平滑指數α\alpha以指數形式遞減,故稱之爲指數平滑法。平滑指數取值很重要,平滑常數α\alpha決定了平滑水平以及對預測值與實際結果之間差異的響應速度:α\alpha越接近於1,遠期實際值對本期平滑值影響程度下降的越快;越接近於0,遠期實際值對本期平滑值的影響程度下降的越慢。所以,當時間數列相對平穩時,可取較大α\alpha;當時間數列波動較大時,應取較小的α\alpha,以此不忽略遠期實際值的影響。經驗如下(他人):指數平滑係數α的確定
    (1)當時間序列呈現較穩定的水平趨勢時,應選較小的α,一般可在0.05~0.20之間取值‘
    (2)當時間序列有波動,但長期趨勢變化不大時,可選稍大的α值,常在0.1~0.4之間取值;
    (3)當時間序列波動很大,長期趨勢變化幅度較大,呈現明顯且迅速的上升或下降趨勢時,宜選擇較大的α值,如可在0.6~0.8間選值。以使預測模型靈敏度高些,能迅速跟上數據的變化。
    (4)當時間序列數據是上升(或下降)的發展趨勢類型,α應取較大的值,在0.6~1之間。

初始值的確定:
求第一期的平滑值S1(1)=αy1+(1α)S0(1)S_{1}^{(1)}=\alpha \cdot y_{1} + (1-\alpha) \cdot S_{0}^{(1)}時,很明顯不存在y0y_{0},便也無法產生S0(1)S_{0}^{(1)},用下面的兩種方法解決此問題:
(1)如果能夠找到y1y_{1}以前的歷史資料,那麼當數據較少時,使用全期平均、移動平均;當數據較多時,可用最小二乘法。
(2)如果僅有從y1y_{1}開始的數據,那麼確定初始值的方法:取S1(1)=y1S_{1}^{(1)}=y_{1};待積累若干數據後,取S1S_{1}等於前面若干數據的簡單算數平均數,如:S0(1)=y1+y2+y33S_{0}^{(1)}=\frac{y_{1}+y_{2}+y_{3}}{3}
-------------------------------------------------------------------------------------------------------------------------------

舉個例子:
在這裏插入圖片描述

3.2 二次平滑指數

一次指數平滑法雖然克服了移動平均法的缺點,但當時間序列的變動出現直線趨勢時,用一次指數平滑法進行預測,仍存在明顯的滯後偏差,因此,必須加以修正。修正的方法與趨勢移動平均法相同,即再作二次指數平滑,利用滯後偏差的規律建立直線趨勢模型,這就是二次指數平滑法。

其數學表達爲:
St(1)=αyt+(1α)St1(1)St(2)=αSt(1)+(1α)St1(2)(4)S_{t}^{(1)}=\alpha y_{t}+(1-\alpha)S_{t-1}^{(1)}\\ S_{t}^{(2)}=\alpha S_{t}^{(1)}+(1-\alpha)S_{t-1}^{(2)} \tag{4}

上式中,St(1)S_{t}^{(1)}爲一次指數平滑值,St(2)S_{t}^{(2)}爲二次指數平滑值。

當時間序列yt{y_{t}},某時期開始具有直線趨勢時,可用直線趨勢模型:
y^t+T=at+btT(5)\hat{y}_{t+T}= a_{t}+b_{t}T\tag{5}
其中:
{at=2St(1)St(2)bt=α1α(St(1)St(2))(6) \left\{\begin{matrix} a_{t}=2S_{t}^{(1)}-S^{(2)}_{t}\\ b_{t}=\frac{\alpha}{1-\alpha}(S^{(1)}_{t}-S^{(2)}_{t}) \end{matrix}\right.\tag{6}
-------------------------------------------------------------------------------------------------------------------------
舉個例子:
仍以例 3 我國 1965~1985 年的發電總量資料爲例,試用二次指數平滑法預 測 1986 年和 1987 年的發電總量:
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述爲了求各期的模擬值,可將式(6)帶入直線模型(5),並另T = 1,則得:
y^t+1=(2St(1)St(2))+α1+α(St(1)St(2))(7)\hat{y}_{t+1}=(2S_{t}^{(1)}-S_{t}^{(2)})+\frac{\alpha}{1+\alpha}(S_{t}^{(1)}-S_{t}^{(2)})\tag{7}
即:
y^t+1=(1+11+α)St(1)11αSt(2)(8)\hat{y}_{t+1}=(1+\frac{1}{1+\alpha})S_{t}^{(1)}-\frac{1}{1-\alpha}S_{t}^{(2)}\tag{8}

3.3、三次平滑指數

前面說了,二次平滑是爲了擬合直線趨勢,三次平滑指數則是爲了擬合二次曲線趨勢。三次平滑指數是在二次平滑上在平滑一次。
數學表達:
{St(1)=αyt+(1+α)St(1)St(2)=αSt(1)+(1+α)St1(2)St(3)=αSt(2)+(1+α)St1(3)(9) \left\{\begin{matrix} S_{t}^{(1)}=\alpha y_{t}+(1 +\alpha )S_{t}^{(1)}\\S_{t}^{(2)}=\alpha S_{t}^{(1)}+(1 +\alpha )S_{t-1}^{(2)}\\S_{t}^{(3)}=\alpha S_{t}^{(2)}+(1 +\alpha )S_{t-1}^{(3)} \end{matrix}\right.\tag{9}

式中St(3)S_{t}^{(3)}爲三次平滑值。

三次指數平滑法的預測模型爲:
y^=at+btT+CtT2(10)\hat{y}=a_{t}+b_{t}T+C_{t}T^{2}\tag{10}
其中:
{at=3St(1)3St(2)+St(3)bt=α2(1+α)[(65α)St(1)2(54α)St(2)+(43α)St(3)]ct=α22(1α)2[St(1)2St(2)+St(3)](11) \left\{\begin{matrix} a_{t}=3S_{t}^{(1)}-3S_{t}^{(2)}+S_{t}^{(3)}\\b_{t}=\frac{\alpha}{2(1+\alpha)}[(6-5\alpha)S_{t}^{(1)}-2(5-4\alpha)S_{t}^{(2)}+(4-3\alpha)S_{t}^{(3)}]\\c_{t}=\frac{\alpha ^{2}}{2(1-\alpha)^{2}}[S_{t}^{(1)}-2S_{t}^{(2)}+S_{t}^{(3)}] \end{matrix}\right.\tag{11}
----------------------------------------------------------------------------------------------------------------------
舉例:

某省 1978~1988 年全民所有制單位固定資產投資總額如下表7所示,試預測 1989 年和 1990 年固定資產投資總額:
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

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