ARIMA模型怎麼根據拖尾和截尾來判斷p,q?

或者有其他好方法?


ARIMA(p, d, q) 一般先進行 d 次差分轉化為 ARMA(p, q) 來考慮。所以下面先介紹EACF(extended ACF)如何定 ARMA(p, q) 的階,然後用一個模擬的 ARIMA(1, 1, 2) 例子來展示如何在R語言中用EACF定階。

相關理論

首先拖尾跟截尾都是對自相關函數(ACF)和偏自相關函數(PACF)而言的。對於 ARMA(p, q) 模型,我們有

ACF和PACF的拖尾截尾

可以看出,對於純 AR(p)MA(q) 模型,ACF和PACF的拖尾截尾性質很明顯,可以因此很容易地定階。但是對於混合的 ARMA(p, q) 模型而言,便不是那麼方便了。

文獻[1]提出了EACF方法,對於未知的 ARMA(p, q) ,採用迭代的過程來定階。假設當前AR階數為 k , MA階數為j ,則我們可以通過一系列的 j 次回歸(這裡略去,具體過程可以參見文獻[1])來一致估計出AR的係數 	ilde phi_i, i=1,ldots,k ,然後構造自回歸殘差

W_{t,k,j}=Y_t-	ilde phi_1Y_{t-1}-cdots-	ilde phi_kY_{t-k}

{W_{t,k,j}} 的ACF便稱為EACF。當 k=p, jge q , {W_{t,k,j}} 近似 MA(q) 模型,所以其ACF會滯後 q 階後截尾。當 k>p ,會出現過擬合,這也將導致 {W_{t,k,j}} 的MA階數增加,文獻[1]中指出將EACF的信息匯總在一張表中,若 {W_{t,k,j}}j+1 階滯後ACF顯著不為0,則第 k 行和第 j 列元素用符號`x`表示,否則用0表示。這樣理論上 ARMA(p,q) 有一個由0構成的三角模式。下圖是 ARMA(1,1) 的理論EACF,零三角的左上角的0所在的行列表徵了ARMA的階。

ARMA(1, 1)的理論EACF

R語言實現

下面舉個例子

模擬例子

從EACF表還是很容易得出階數,需要注意,對於ARIMA模型,我們需要先進行差分,如例子中的`diff`,然後再按照ARMA來考慮。另外,eacf在TSA包中。

參考文獻

[1] Tsay, R. S. and Tiao, G. (1984). 「Consistent estimates of autoregressive parameters and

extended sample autocorrelation function for stationary and nonstationary ARMA

Models.」 Journal of the American Statistical Association, 79, 385, 84–96.


推薦閱讀:

Arima
基於GARCH模型的平安銀行股票研究和危機預警——R語言描述
利用python進行時間序列分析——從隨機遊走到GARCH模型(三)【完】
參考場景:時間序列分析

TAG:R編程語言 | 時間序列分析 |