平穩時間序列分析之模型識別

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

時間序列識別過程利用自相關係數ACF和偏自相關係數PACF,其中ACF用於衡量序列中較早的數據值是否與後面時間值有某種關係,PACF用於捕獲變量和變量滯後量之間的關係。

計算出樣本自相關係數和偏相關係數的值之後,就要根據它們表現出來的性質,確定相應的p,q的數值,從而選擇適當階數的 ARMA(p,q)模型。因此,模型識別過程也稱為模型定階過程。

1、ARMA模型定階的基本原則為:

平穩時間序列分析之模型識別

由於樣本的隨機性,樣本的自相關係數不會呈現出理論截尾的完美情況,本應截尾的樣本自相關係數或偏自相關係數人會呈現小值振蕩。同時,由於平穩時間序列通常都具有短期相關性,隨著延遲階數k的增大,樣本自相關係數或偏自相關係數都會衰減值零值附近作小指波動。

這種現象促使我們必須思考:

(1)當樣本自相關係或偏自相關係數在延遲若干階之後衰減為小值波動時,什麼情況下該看做相關係數截尾?

(2)什麼情況下該看做相關係數在延遲若干階之後衰減到零值附近作拖尾波動?

這實際上沒有絕對的標準,很大程度上依靠分析人員的主觀經驗。但樣本自相關係數和偏自相關係數的近似分布可以幫助分許人員做出盡量合理的判斷。

如果樣本自相關係數或偏相關係數在最初的d階明顯超過2倍標準差範圍,而後幾乎95%的自相關關係都落在2倍標準差範圍以內,而且由非零自相關係數衰減為小值波動的過程非常突然,這時,通常視為自相關係數截尾,截尾階數為d

如果有超過5%的樣本系數落入2倍標準差範圍之外,或者有顯著非零的自相關係數衰減為小值波動的過程比較緩慢或者非常連續,這時,通常視為自相關係數不截尾

2、案例分析

選擇合適的ARMA模型擬合1880—1985年全球氣表平均溫度改變值差分序列。

①讀入數據,繪制時序圖

	a<-read.table("average_temp.txt",header=T)
	dif_x<-ts(diff(a[,2]),start=1880)
	plot(dif_x,col="blue")

平穩時間序列分析之模型識別

②白噪聲檢驗

	for(i in 1:2) print(Box.test(dif_x,lag=6*i))

平穩時間序列分析之模型識別

可看到P值小於0.05,序列非白噪聲。

③繪制自相關圖和偏自相關圖

	acf(dif_x)
	pacf(dif_x)

平穩時間序列分析之模型識別

自相關係數和偏自相關係數均顯示出不截尾的性質,因此可以嘗試用ARMA(1,1)擬合該序列。

為了盡量避免因個人經驗不足而導致的模型識別不準確的問題, R 提供了函數 auto.arima。該函數基於信息量最小原則自動識別模型階數,並給出該模型的參數可能值。 要使用該函數,必須先下載 zoo 和forecast 程序包。

auto.arima 函數的命令格式為:

	auto.arima (x , max.p=5 , max.q= , ic= )

x:需要定階的序列名

max.p:自相關係數最高階數,系統默認為5

max.q:移動平均系數最高階數,系統默認為5

ic:指定信息準則。有「AICC」、「AIC」、「BIC」.系統默認為AIC準則。

利用auto.arima 函數定階1880—1985年全球氣表平均溫度改變值的MRMA模型。

library(zoo)
library(forecast)
auto.arima(dif_x)

平穩時間序列分析之模型識別

從上述結果可看出系統自動定階的結果與我們根據自相關圖和偏自相關圖定階的結果一致。