時間序列 R 09 ARIMA
阿新 • • 發佈:2019-02-03
1.1 穩定性與差分
1.1.1 穩定性 stationarity
穩定性是指時間序列的屬性不在隨時間變化。因此有趨勢和季節性的時間序列不是穩定的序列。但是有一些具有周期性cyclic的時間序列因為其週期時間不一定,所以也是穩定性序列。
1.1.2 差分 Differencing
下圖a,b分別是道瓊斯指數與道瓊斯指數每天的變化量
下圖是兩幅圖的ACF
第二幅中僅有一個是稍大於95%線,而且Ljung-Box Q∗的p-value值為0.153 (for h=10h=10),可見b是穩定的,而顯然a是不穩定的。這種計算連續值的differences的方法就叫做differencing
1.1.3 隨機遊動 random walk
這種模式有一個常數c,因此有不斷增長或者降低的趨勢,期預測方法為drift法。
1.1.4 二階差分
在差分的基礎之上在進行一次差分為二次差分:
實際中一般很少需要二階以上差分,一階差分只有t-1個值,二階差分只有t-2個值。
1.1.5 lag-m差分Seasonal differences
在對季節性資料進行查分時往往不是進行相鄰資料的差分,而是用下式進行差分:
這叫做m滯後差分,也叫Seasonal differences 。
如果得到的差分結果是白噪聲,其預測方法用naive seasonal 方法,直接以最後一個週期為預測值
下圖是在進行log轉換後進行了一次seasonal差分,發現可能還不穩定,然後又進行了一次一階差分
這樣兩次差分的方程為:
可見這兩次差分誰在前面都是一樣的結果,但是如果週期性比較好,建議先進行週期性差分,這樣可能只進行週期性差分就可以得到一個穩定序列,但是如果只進行一階差分一般得到的結果還是週期性的結果。
1.1.6 單位根檢驗 Unit root tests
關於什麼是單位根,http://blog.sina.com.cn/s/blog_6d0417a501017jrq.html。
這裡我們只要知道單位根檢驗就看時間序列是否穩定的檢驗就可以了。
文中介紹了兩種方法Augmented Dickey-Fuller (ADF) test和Kwiatkowski-Phillips-Schmidt-Shin (KPSS)
ADF的迴歸方程為:
如果原算式
R中的命令是
adf.test(x, alternative = "stationary")
其零假設為原序列是不穩定的,所以得到的P-value越小越穩定
而在KPSS中預期相反,得到的值越大越穩定
KPSS的Rcode是
kpss.test(x)
另外,R語言中ndiffs()
是一個很有用函式,可以判斷一個序列需要的差分數。nsdiffs()
是判斷一個季節性序列所需要的差分數,一般季節性差分可能需要與lag-1差分混合使用,下面是使季節性資料穩定的栗子:
ns <- nsdiffs(x)
if(ns > 0) {
xstar <- diff(x,lag=frequency(x),differences=ns)
} else {
xstar <- x
}
nd <- ndiffs(xstar)
if(nd > 0) {
xstar <- diff(xstar,differences=nd)
}
結果儲存在xstar中。
1.2 backshift notation
backshift的定義如下:
並定義:
一階差分用B表達
二階差分