时间序列 :ARIMA模型-原理
時間序列是在時間點上形成的數值序列,時間序列預測是通過觀察歷史數據預測未來的值。ARIMA模型(Autoregressive?Integrated?Moving?Average model)是時間序列預測分析方法之一,全稱叫做自回歸差分移動*均模型。
本文是看網上博客整理而來,原始文章是:
時間序列分析(2) ARIMA 模型
羅漢堂主 ARIMA
機器學習(三)——時間序列法
一,模型的構成
ARIMA模型包含3個部分,即自回歸(AR)、差分(I)和移動*均(MA),它們的含義分別是:
- AR表示自回歸(Auto Regression),
- I 表示單整階數(Integration),時間序列必須是*穩的,才能建立計量模型。對時間序列進行單位根檢驗,如果是非*穩序列,那么需要通過差分轉化為*穩序列,經過幾次差分轉化為*穩序列,就稱為幾階單整;
- MA表示移動*均模型(Moving Average)
ARIMA模型記作ARIMA(p,d,q),p為自回歸項數;q為滑動*均項數,d為使之成為*穩序列所做的差分次數(階數)。“差分”是關鍵步驟,采用ARIMA模型預測的時序數據,必須是穩定的(*穩性),不穩定的數據,是無法捕捉到時序規律的。
ARIMA模型實際上是AR模型和MA模型的組合,ARIMA模型與ARMA模型的區別:ARMA模型是針對*穩時間序列建立的模型,而ARIMA模型是針對非*穩時間序列建立的模型。換句話說,非*穩時間序列要建立ARMA模型,首先需要經過差分轉化為*穩時間序列,然后建立ARMA模型。
- 模型的優點是:模型簡單,只需要內生變量而不需要借助其他外生變量。
- 模型的缺點是:要求時序數據是穩定的,或者通過差分化之后是穩定的;本質上只能捕捉線性關系,不能捕捉非線性關系。
1,AR模型
描述當前值與歷史值之間的關系,用變量自身的歷史時間數據對自身進行預測,自回歸模型必須滿足*穩性的要求
一般情況下,p階自回歸過程的公式定義:
yt是當前值,u是常數項,P是階數,ri是自相關系數,et是誤差,即 白噪聲。
公式展開:
如果隨機擾動項是一個白噪聲(?
?),即 u=0, 則稱AR模型為一個純AR(p)過程,記為:從公式中可以看出,當前值是通過歷史值來預測的,p是自回歸模型中的一個階數,表示用幾期的歷史值來預測當前值。
自回歸模型的限制:
- 1、自回歸模型是用自身的數據進行預測
- 2、時間序列數據必須具有*穩性
- 3、必須具有相關性,如果自相關系數(φi)小于0.5,則不宜采用
- 4、自回歸只適用于預測與自身前期相關的現象(時間序列的自相關性)
移動*均模型關注的是自回歸模型中的誤差項的累加,在AR模型中,如果?
?不是一個白噪聲,通常認為它是一個q階的移動*均。其中?
?表示白噪聲序列。特別的,當?
?,即時間序列當前值與歷史值沒有關系,而只依賴于歷史白噪聲的線性組合,就得到MA模型:需要指出一點,AR模型中歷史白噪聲的影響是間接影響當前預測值的(通過影響歷史時序值)。
q階自MA模型的公式定義:
移動*均法能有效地消除預測中的隨機波動。
3,ARMA模型
將AR(p)與MA(q)結合,得到一個一般的自回歸移動*均模型ARMA(p,q):
該式表明:
(1)一個隨機時間序列可以通過一個自回歸移動*均模型來表示,即該序列可以由其自身的過去或滯后值以及隨機擾動項來解釋。
(2)如果該序列是*穩的,即它的行為并不會隨著時間的推移而變化,那么我們就可以通過該序列過去的行為來預測未來。
4,ARIMA 模型
ARIMA中的AR和MA,分別是AR模型和MA模型,I是差分法,差分計算保證了數據的穩定性。
自回歸模型(AR)、移動*均模型(MA)和差分法(I)結合,我們就得到了差分自回歸移動*均模型 ARIMA(p、d、q),其中 d 是需要對數據進行差分的階數,ARIMA是經過差分后的ARMA模型。
二,模型的特征
第一個特征是:自相關性
通常來講,時間序列一般由固定趨勢、季節性變動和隨機因素組成。如果時間序列的隨機因素在各時間點上完全獨立沒有任何聯系,那么我們很難對這一部分進行建模。幸運的是,對于一般的時間序列,在剔除固定趨勢和季節效應后,時間序列在不同時點上是存在相關性的,這種自相關特征是我們對時間序列建模的基礎。
在統計學中,我們用相關系數表示兩個變量之間的相關性,在時間序列中一個重要問題是研究序列之間是如何相互影響的。與統計學的相關系數類似,在時序分析中采用相似的方法來表示時間序列的自相關特征。通過自相關函數圖可以清楚地看到時間序列的自相關特征,這種特征是建模的基礎。
自相關函數 (AutocorrelationFunction, ACF):相關系數度量了兩個向量的線性相關性,而在*穩時間序列 {rt} 中,我們有時候很想知道,rt 與它的過去值 rt-i 的線性相關性。 這時候我們把相關系數的概念推廣到自相關系數。
rt 與 rt-l 的相關系數稱為 rt 的間隔為 l 的自相關系數,通常記為 ρl。具體的:
這里用到了弱*穩序列的性質:
則函數:
?稱為rt 的樣本自相關函數(ACF)。當自相關函數中所有的值都為0時,我們認為該序列是完全不相關的;因此,我們經常需要檢驗多個自相關系數是否為0。
第二個特征是:白噪聲
白噪聲是由一組0均值,不變方差,相互獨立的元素構成,當然可以對該元素的分布進行假設(如高斯分布)。白噪聲如同他的名字聽起來一樣是雜亂無章的,各元素之間沒有任何聯系。由白噪聲組成的序列是隨機游走,隨機游走序列的自相關特點是其自相關函數幾乎為1并且衰減很慢,這種特征我們稱為長記憶性。
白噪聲表示數據之間沒有相關性,如果時間序列都是由白噪聲數據構成的,那么時間序列的數據就不能是自相關的。
第三個特征是:*穩性
事件序列的*穩性可以分為強*穩和弱*穩。為什么*穩性對事件序列建模如此重要?為什么要有強、弱兩種*穩?
弱*穩的時間序列需滿足兩個條件:均值函數是常數函數且協方差函數僅與時間差相關。*穩性的實質是對時間*移的不變性做了假設,有了這種假設通過歷史數據去預測未來才有了基礎,否則歷史數據的統計特征對未來預測毫無作用。
強*穩是事實上的*穩,它要求時間序列的點同分布,它過于嚴格而且不好驗證和使用;弱*穩則是退而求其次只要求前兩階矩*穩(均值和方差),這樣使得弱*穩有了明顯的統計意義。
因此,為了能夠對時間序列進行建模,必須進行*穩性檢驗,檢驗方法有ADF、*穩序列的自相關和偏自相關。若非*穩,則通過差分去除趨勢,直到通過*穩性檢驗。
三,*穩性檢查
*穩就是圍繞著一個常數上下波動且波動范圍有限,即有常數均值和常數方差。如果有明顯的趨勢或周期性,那它通常不是*穩序列。
時間序列必須是*穩的,才能建立計量模型。*穩是指數據圍繞著一個常數上下波動且波動范圍有限,即有常數均值和常數方差。如果有明顯的趨勢或周期性,那它通常不是*穩序列。*穩性是指經由樣本時間序列所得到的擬合曲線在未來一段時間內仍能順著現有的形態慣性地延續下去。
*穩性要求序列的均值、方差和協方差不發生明顯變化,通常從三個方面分析:均值,方差和協方差, 這三個指標都不會隨著時間而發生明顯的變化。
1,均值 均值不應該是關于時間t的函數,而應該是一個常數。2,方差
方差不應該是時間的函數,即方差需要有:同方差性
3,協方差
i時刻與i+m時刻協方差不應該是時間的函數:
檢查*穩性,一般有三種方法:
(1)直接畫出時間序列的趨勢圖,看趨勢判斷。
(2)畫自相關和偏自相關圖:*穩的序列的自相關圖(Autocorrelation)和偏相關圖(Partial Correlation)要么拖尾,要么是截尾。
(3)單位根檢驗:檢驗序列中是否存在單位根,如果存在單位根就是非*穩時間序列。
在項目中,通常使用前兩種方法來檢查時間序列的*穩性。 單位根檢驗對時間序列進行單位根檢驗,如果是非*穩序列,那么需要通過差分轉化為*穩序列,不穩定的數據,是無法捕捉到時序規律的。
單位根(unit root)檢驗是指檢驗序列中是否存在單位根,因為存在單位根就是非*穩時間序列了。單位根就是指單位根過程,可以證明,序列中存在單位根過程就不*穩,會使回歸分析中存在偽回歸。而擴展迪基-福勒檢驗(Augmented Dickey-Fuller test可以測試一個自回歸模型是否存在單位根,通過ADF檢測的ADF值和p_value值看是否滿足*穩性要求。
1)ADF值判斷*穩性需要根據1%、%5、%10不同程度拒絕原假設的統計值:
- 1%:嚴格拒絕假設;
- 5%:拒絕原假設;
- 10%類推。
ADF值越小,越拒絕原假設,越說明序列不存在單位根,那么時間序列越*穩。
2)p_value值要小于一個顯著值,時間序列就是*穩的,一般以0.01為顯著值。
四,參數值的確認
ARIMA模型含有三個參數:p,d,q。
- p:代表預測模型中采用的時序數據本身的滯后數(lags) ,也叫做AR/Auto-Regressive項
- d:代表時序數據需要進行幾階差分化,才是穩定的,也叫Integrated項。
- q:代表預測模型中采用的預測誤差的滯后數(lags),也叫做MA/Moving Average項
1,參數d的確認
差分是求時間序列{rt}在 t時刻和t-1時刻的差值,把rt 與 t-1 時刻的值r(t-1) 的差值記做 dt,則得到了一個新序列{dt},為一階差分;對新序列{dt}再做同樣的操作,則為二階差分。通常非*穩序列可以經過d次差分,處理成弱*穩或者*似弱*穩時間序列。d就是差分的階數,d階差分就是相距d期的兩個序列值之間相減。
如果一個時間序列經過差分運算后具有*穩性,則該序列為差分*穩序列,可以使用ARIMA模型進行分析。也就是說,如果對時間序列做d次差分后得到一個*穩序列,那么可以使用ARIMA(p,d,q)模型,其中d是差分次數。
首先通過ADF檢驗,檢查原始時間序列的*穩性,如果原始時間序列是*穩的,那么d=0;如果原始數據不*穩,那么做差分運算,通過ADF檢驗直到時間序列*穩,一般差分次數不超過2次。
舉個例子,當序列不*穩時,需要通過差分使時間序列變*穩,如下圖所示,第一張圖是原始數據,第二張圖是一階差分,第三張圖是二階差分:
很明顯差分階數越大序列越*穩,一般一階差分即可。除了看圖,也可通過ADF檢驗去檢驗*穩性。
2,參數p、q的確認
通常在時間序列分析中,采用自相關函數(ACF)、偏自相關函數(PACF)來判別ARMA(p,q)模型的系數和階數。
- 自相關函數(ACF)描述時間序列觀測值與其過去的觀測值之間的線性相關性。
- 偏自相關函數(PACF)描述在給定中間觀測值的條件下時間序列觀測值與其過去的觀測值之間的線性相關性。
具體判別過程如下面的表格所示:
p由顯著不為0的偏自相關系數的數目決定,此時序列的偏自相關函數表現為拖尾性,即當k>p時,偏自相關系數的值都在置信區間以內; q由顯著不為0的自相關系數的數目決定,此時序列的自相關函數表現為截尾性,即當k>p時,自相關系數的值都在置信區間內。 這里的拖尾是指以指數率單調或振蕩衰減,截尾是指從某個開始非常小(不顯著非零)。 在*穩時間序列中,應用自相關函數和偏自相關函數在初步判斷ARMA模型的階數p和q的基礎上,然后通過最小信息準則AIC進行定階。 ARMA模型中p和q的的最佳估計可以通過AIC準則給出,AIC比較適合在被觀察樣本數據較少的情況下使用。?
做出上面時間序列的ACF和PACF,圖中橫線為0±兩倍標準差,可以判斷ACF和PACF是否顯著非零。
可以看出ACF呈拖尾狀,PACF第2個后截尾,可初步斷定序列適合AR(2)模型。
3,拖尾和截尾
拖尾指序列以指數率單調遞減或震蕩衰減,而截尾指序列從某個時點變得非常小:
p,q階數的確定
?
五,模型優化
AIC和BIC準則
在所有通過檢驗的模型中,使得AIC和BIC函數達到最小的模型是相對最優的模型。
參考文檔:
時間序列分析(2) ARIMA 模型
羅漢堂主 ARIMA
機器學習(三)——時間序列法
總結
以上是生活随笔為你收集整理的时间序列 :ARIMA模型-原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html产品720度旋转,720度全视角
- 下一篇: 【组网】NAT类型为Udpblocked