怎樣理解時間序列二

在上一篇(怎樣理解時間序列一)中介紹了一個簡單的時間序列預測模型-指數平滑預測模型。說他簡單是一點不假的,尤其是在和ARIMA模型對比之下。先看百科中對ARIM的介紹(下面截圖來自百科)

這一段介紹下來,放棄抵抗也是正常了,畢竟大部分人並非統計學出身,數學知識還能記住一半的也屬另類,平時工作中用不到的知識忘了也就忘了。可是在企業中突然被老闆叫去做預測怎麼辦呢?下面我盡量用人話來介紹一下ARIMA模型,不打算寫太多的公式了,很累的。

理解了一個模型的參數,就可以填入適合的參數值,那麼這個模型也就可以用了。所以這一篇就重點介紹這個模型各參數的意義。首先看下ARIMA完整的模型表達式:ARIMA(p,d,q)*(P,D,Q)?? (s為周期步長),需要我們理解的參數都在這了。

首先,我先概述一下,單純的講ARIMA模型是不行的,它和其他幾個模型有著千絲萬縷的關係,首先是AR(p)模型,然後是MA(q)模型,AR(p)模型和MA(q)模型可以組合成ARMA(p,q)模型,如果序列需要做一下差分,就成了ARIMA(p,d,q)模型,如果原序列有季節性呢,就有了周期s,如果原序列的周期性和長期趨勢、隨機波動之間有著複雜的交互影響,那麼就要使用乘法季節模型,就是ARIMA(p,d,q)*(P,D,Q)??了。

上一篇有說道,ARIMA模型的預測原理是分析序列自身,提取序列中所有相關性的信息來擬合函數,並用該函數進行預測。預測的准或不準,都在於這個函數擬合的好不好。AR(p)模型,全稱是p階回歸模型;MA(q)模型,全稱是q階移動平均模型;ARMA模型,全稱是自回歸移動平均模型。這三個模型都有自己的函數公式,這三個公式可以畫成不同的曲線,如果它們所畫出來的曲線和歷史序列非常相似,那麼恭喜你,已經找到很好的擬合函數了,後面就可以用這個函數來進行預測了。我們還是看一下這三個公式(限制條件就不寫了)

公式看不看無所謂,主要是想說從公式中可以看出這幾個信息:

  1. ARMA(p,q)模型的統計性質就是AR(p)模型和MA(q)模型的有機組合,如果q=0,它就退化成了AR(p)模型,如果p=0,就退化成了MA(q)模型。
  2. p和q不同,模型的階數不同,未知參數不同(這個參數的問題後面再說),擬合出來的曲線不同。

到這裡大家應該看得出來,p和q的性質了,定義不同的p和q可以擬合出不同的曲線,如果這個曲線和原序列擬合度很高,那就可以用來預測了。還有其他參數沒有介紹,那麼一定是因為並非所有的序列都可以通過ARMA擬合出來的,有些序列僅僅調整p和q的值是不能擬合出來的,因為ARMA模型要求序列一定是平穩的。

這裡有了一個新的概念,就是平穩性,那麼怎麼來理解平穩性,它的一種表達是序列的統計性質不隨時間的推移而發生變化。這也是可以理解的,我費了老大的功夫把函數擬合出來,結果時間變了我的函數就不對了,還怎麼玩下去?可是那些不是平穩的序列要怎樣預測呢,生活中大量的數據都不是平穩的,有趨勢的不平穩,有周期的也不平穩,沒有趨勢沒有周期序列本就少了很多,而且它們的也還不一定平穩呢。為了能夠預測不平穩的序列,採用了一個方法叫做差分,就這樣ARIMA模型出現了,參數d也可以現身了。

ARIMA模型中參數d就是用作差分的,d=1就是做1階差分,d=2就是2階差分。什麼是差分?我這裡就寫一個一階差分的公式簡單表達下,更多的就百度查概念吧。

了解差分之後,我們繼續講,一個不平穩的序列,我們可以做1階差分,也可以做多階差分,還可以做步長大於1的差分,這麼多選擇,怎樣才能最合適的讓序列平穩,而且避免過差分呢(每次差分都會帶來信息的損失,因此差分要點到為止,平穩後再差分雖然也平穩但是信息就沒了)?一般來說,序列蘊含顯著的線性趨勢,1階差分就可以實現序列平穩;序列如果是曲線趨勢,2階或3階也差不多可以平穩了;如果序列有周期因素,那麼進行步長為周期長度的差分運算,可以提取周期信息。

這裡就帶來了一個問題,進行差分運算後,序列到底是不是平穩的?除了上文我說的有趨勢的不平穩、有周期的不平穩之外,衡量一個序列是否平穩,有兩個重要的統計性質:

  • 均值為常數:也就是不論哪一個時間範圍,取它的期望值都是一樣的
  • 自協方差函數和自相關係數只依賴於時間的平移長度而與時間的起止點無關

了解它的統計性質之後,驗證一個序列是否平穩,到底要怎樣判斷?常用的兩個方法,首先,用眼睛看,有些不平穩一眼就看出來幹嘛還動手呢?肉眼已經看不出來的,使用自相關圖檢驗,平穩序列具有短期相關性。如下圖(來源百度圖片,侵刪)第一個就不平穩,延遲階數很高卻依然有自相關性,第二個圖就是平穩的了,延遲2階之後的自相關係數都在兩杯標準差範圍內了。

這樣,我們通過差分讓一個序列平穩了之後,就可以繼續用ARMA模型來擬合了。前文說了用ARMA(p,q)可以擬合出不同的曲線,還有個問題沒有講,一條平穩的曲線放在這裡,要怎樣才能擬合出合適的函數來呢?這中間要有兩部,首先是模型的定階,也就是p為多少,q為多少;其次,通過最上面ARMA(p,q)的公式可以看出來,這個模型中含有p+q+2個未知參數,這些未知參數怎麼計算出來。

首先是模型的定階,也就是確定p和q這兩個參數,一般是通過序列的自相關係數和偏自相關係數來進行判斷,如下表所示:

這裡有兩個概念需要補充一下了,什麼叫做拖尾,什麼叫做截尾。這個是用自相關係數圖(偏自相關係數圖)來看,如果自相關係數(或偏自相關係數)在p(或q)階之後斷崖式下跌,和p(或q)階之前差距很大,那麼就是p(或q)階截尾了,如果自相關係數(或偏自相關係數)拖拖拉拉的沒有這種乾脆爽快的下跌,那麼就是拖尾。從我的描述中也可以看出來,判斷截尾或拖尾有一定的主觀因素,畢竟不是所有的自相關圖都可以截尾的那麼清晰。因此確定模型的階數還需要有一定的經驗因素在其中。

在確定了模型的階數之後,就需要評估模型參數了,從前面公式中可以看出來,無論是AR(p)模型、MA(q)模型還是ARMA(p,q)模型都有一堆的參數,這要是一個一個找出來要累死。這樣參數估計有點麻煩,方法有矩估計、最大似然估計和最小二乘估計,其中矩估計精度不高,常用的是最大釋然估計和最小二乘估計。這些方法具體的過程講道理我也沒有看懂,不過幸運的是這些過程不需要我們自己做,有統計軟體在,這些參數可以交給它們了。

到現在為止,不平穩的序列搞平穩了,平穩後的序列找出了模型,模型中的參數也識別出來了,最終擬合出來的函數應該出來了吧?函數是出來了,這個不是問題,可問題是,這個函數靠譜么?那麼又引來了一個新的問題,就是模型的檢驗,通過驗證的模型才是可用的模型。模型要怎樣驗證的,需要另一個新的概念叫做殘差,殘差什麼樣才算通過驗證呢?殘差序列是白雜訊序列的就可以通過了,為什麼是這樣呢?如果序列一開始就是白雜訊怎麼辦?如果擬合沒有通過檢驗怎麼辦?有哪些序列需要其他的參數才能擬合?這一段中所有的問題,留在下一篇在講吧。

原創文章,轉載請私信作者


推薦閱讀:

人人都是數據科學家?Airbnb數據大學開課了
零基礎學習數據分析?看這裡!
傳統行業的數據之花:遞減率分析(python)
數據分析的基礎過程之:Numpy和Pandas的使用
R語言實戰第三四章內容學習及心得

TAG:商業智能BI | 數據分析 | 數據挖掘 |