您當前的位置:首頁 > 收藏

時間序列中p,d,q的確定

作者:由 嘰嘰哇哇-yy 發表于 收藏時間:2022-01-21

最近做了一個公眾號粉絲數量增長預測,用到了ARIMA模型,本科雖然學過但始終是止於皮毛,很多東西並沒有真正理解,藉此機會也重新學習了一遍。

時間序列其實就是按照時間的順序把隨機事件變化發展過程記錄下來,並對它進行觀察、研究,尋找變化發展的規律,預測它將來的走勢。所以說,ARMA模型就是拿來預測。而ARIMA模型與ARMA模型唯一的區別就在時間序列是否平穩,如果不平穩,則需要做一、二三或者更多階差分,直到序列平穩,這個差分的階數就是ARIMA模型中的d的值。

一來就說平穩,那就說到我們的第一個要點,時間序列的平穩性。

平穩的判定其實非常簡單,概念都不用說,就是你做出來的時序圖是否在一個確定的值上下波動。當然,我們還可以進一步根據自相關圖與偏自相關圖來判斷序列是否平穩。

時間序列中p,d,q的確定

比如這就不是一個平穩的時間序列,它有明顯的上升趨勢

時間序列中p,d,q的確定

而這個時序圖即使它在波動,但都在0的上下波動,可以認為是平穩時間序列

還是嚴肅的說說平穩性。。平穩分為嚴平穩和寬平穩,就像給定的名字一樣,嚴平穩的是一種條件很嚴格的平穩性定義,是所有統計性質都不會隨著時間的推移而變化的;寬平穩的條件就比較寬鬆了,只要保證序列低階矩平穩。為什麼一開始必須要判斷時間序列的平穩性?因為預測時間序列的首要前提就是時間序列是平穩的!!它必須是平穩的,不是平穩的你也得把它差分成平穩的,不然這種預測是無效的。肯定有好奇寶寶要問為什麼必須是平穩的才能做ARMA模型,下面大概介紹一下,如果不需要了解你可以跳過。

時間序列分析方法是利用樣本資訊來推測總體資訊。根據統計學常識,肯定是分析的隨機變數越少越好,而透過每個變數獲得的樣本資訊越多越好。但是時間序列分析的資料結構有它的特殊性,對隨機序列而言,在任意時刻t的序列值Xt都是一個隨機變數,而且由於時間的不可重複性,該變數在任意時刻只能獲得唯一的樣本觀測值。所以在樣本資訊較少的情況下,是無法獲得其他輔助資訊的,如果序列平穩則可以有效解決這個問題。

先明確一下,序列平穩有兩個重要的性質。1、序列的均值為常數。2、自協方差函式和自相關函式僅與時間平移長度有關而與時間的起止點無關。基於兩條性質,均值常數意味著原本含有可列多個隨機變數的均值序列變成了一個常數序列,原本每個隨機變數的均值只能依靠唯一的一個樣本觀測值去估計,現在每一個樣本觀測值Xt都變成了常數均值的樣本觀測值。這極大減少了隨機變數的個數並增加了待估計引數的樣本容量。同理,根據平穩序列二階矩平穩的性質,可以得到基於全體觀察樣本計算出的延遲k自協方差函式的估計值,並進一步推匯出總體方差的估計值和延遲k自相關係數的估計值。這樣我們就明白了只有平穩序列才能推出我們想要的東西(自相關係數和偏自相關係數的估計值),所以說不是平穩就不能做時間序列的預測

確定了序列平穩之後,就開始做自相關圖(ACF)和偏自相關圖(PACF),可以利用多種軟體來實現。R語言,SPSS,Eviews等。我一般會選擇用R。在ACF和PACF圖作出來之後就要開始涉及p,q的確定了,通常我們都這樣來判斷

時間序列中p,d,q的確定

看起來總是很簡單,但實際上,我們很難判定拖尾和截尾啊!!每次看到這兩個圖滿腦子都是問題,怎樣才能算截尾了?這怎麼又像截尾又像拖尾?它在哪個範圍才是截尾?一臉懵逼,感覺簡直書上123,實際¥%#@。

其實這個定階原則本來就是很困難的,實際上並不會呈現出理論截尾的完美情況,本應截尾的仍然會出現小值振盪。所以並沒有絕對的標準,很大程度上是依靠分析人員的主觀經驗,但樣本自相關係數與偏自相關係數的近似分佈可以幫助缺乏經驗的分析人員作出儘量合理的判斷。

我們在判斷時常用的觀察方法是,如果樣本自相關係數或偏自相關係數在最初的d階明顯超過2倍標準差範圍,而後幾乎95%的自相關係數都落在2倍標準差的範圍以內,而且由非零自相關係數衰減為小值波動的過程非常突然(也就是衰減速度非常快),這時,通常視為自相關係數截尾。如果有超過5%的樣本自相關係數落在2倍標準差之外,或者由顯著非零的自相關係數衰減為小值波動的過程比較緩慢或者非常連續(也就是衰減速度較慢),這時,通常認為自相關係數不截尾。不知道會不會有人想問,為什麼是以2倍標準差的範圍來判斷。如果好奇可以看下圖。

時間序列中p,d,q的確定

接下來舉個栗子來說拖尾和截尾

時間序列中p,d,q的確定

可以看出這個自相關圖除了1階(注意這個圖不是看有幾根線超過了2倍標準差p就等於幾,你沒發現第一根對下來的是0階嗎)自相關係數在2倍標準差範圍之外,其他階數都在範圍之內。

時間序列中p,d,q的確定

這個偏自相關圖可能一開始作出來就是比較懵逼,不知道怎麼判斷。你覺得它截尾不明顯,後面階數的偏自相關係數也沒在0上下波動,其實這就是拖尾。所以利用上表提到的確定模型的方法,自相關係數1階截尾,偏自相關係數拖尾,為擬合模型定階為MA(1)。其他模型的判斷也是這樣,只要判斷出自相關和偏自相關是拖尾或者截尾,就能確定擬合模型了。

如果想要更準確的模型,對自己的判斷不自信,可以利用R語言中的auto。arima函式進行自動定階,再結合自己的判斷,選定幾個不同的p,q,比如ARIMA(2,2,1),ARIMA(2,2,2)等,然後利用AIC準則和BIC準則(前提是每個模型都要透過模型的顯著性檢驗和引數的顯著性檢驗),最後確定最優模型。要預測接下來幾期的值就直接用函式forecast()。

標簽: 序列  相關係數  截尾  平穩  偏自