以Nile序列擬合ARIMA模型爲案例分析函數
驗證平穩性的思路佈局
一、平穩性通常經過時序圖直觀判斷,或者經過ADF(Augmented Dickey-Fuller)統計檢驗來驗證平穩性假定spa
a一、R中 tseries 包中的 adf.test() 可用來作 ADF檢驗,語句爲 adf.test(ts),ts爲檢驗的序列,如過結果顯著,則認爲序列知足平穩性code
二、若是方差不是常數,則須要數據作變換io
三、若有存在趨勢項,則須要對其進行差分ast
a、經過繪製時序圖觀察到各觀測年間的方差彷佛是穩定的,所以無需作數據變換test
b、貌似有趨勢項,因此進行ADF檢驗,差分,而後再ADF檢驗im
> library(forecast) > library(tseries) > par(mfrow=c(2,1)) #繪製2*1佈局的圖 > plot(Nile) #繪製時序圖觀察是否平穩,各年間的方差彷佛穩定,所以無需對數據作變換 > adf.test(Nile) #利用adf.test進行驗證平穩性,p value >0.05,不顯著,不平穩,因此須要進行差分 Augmented Dickey-Fuller Test data: Nile Dickey-Fuller = -3.3657, Lag order = 4, p-value = 0.0642 alternative hypothesis: stationary > ndiffs(Nile) #froecast包中的ndiffs找出最有的d(差分次數) [1] 1 > dNile <- diff(Nile,1)# diff(ts,differences=d)其中d對時序ts的差分次數,默認d=1,可不寫 > plot(dNile) > adf.test(dNile) #再用adf.test()進行平穩性驗證 Augmented Dickey-Fuller Test data: dNile Dickey-Fuller = -6.5924, Lag order = 4, p-value = 0.01 #p value <0.05表示顯著,表示平穩 alternative hypothesis: stationary Warning message: In adf.test(dNile) : p-value smaller than printed p-value
原始序列差分一次(函數默認一階滯後項,即lag=1)並存儲在dNile中,如上圖差分後的序列的折線圖,顯然比原始序列更平穩,對差分後的序列作ADF檢驗,結果顯示顯著,說明序列是平穩的,統計
可繼續下一步選擇模型數據