一、時(shí)序分析知識(shí)點(diǎn)
參考Youtube視頻萍鲸。
時(shí)間序列的大綱
時(shí)間序列的應(yīng)用以及滯后
滯后的意思是后面的y值總是依賴于前面的y值闷叉,也就是比如存錢加上利息的收入總是與你前一段時(shí)間的存額有關(guān)擦俐,所以要分析y和時(shí)間的關(guān)系就要把滯后lag也考慮進(jìn)去脊阴,否則會(huì)把滯后的影響也當(dāng)成了自變量對(duì)因變量造成的影響。
white noise
樣本點(diǎn)圍繞著均值有一個(gè)方差恒定的均值波動(dòng)蚯瞧,AR自回歸和MA移動(dòng)平均回歸模型是為了違反white noise進(jìn)行修正的嘿期,消除兩種偏差。
什么是ARIMA模型埋合?
ARIMA全稱是Auto Regression Integrated Moving Average备徐,是為了能夠在時(shí)間序列分析當(dāng)中更好地理解數(shù)據(jù),以及使得數(shù)據(jù)更好的能夠被我們的模型所擬合甚颂,這樣我們就可以在未來某個(gè)節(jié)點(diǎn)預(yù)測(cè)因變量(GDP蜜猾,Price等等)秀菱,它由三部分含義構(gòu)成,各自有各自的作用蹭睡。
ARIMA由自回歸模型和移動(dòng)平均值模型構(gòu)成衍菱,接下來分別介紹它們的作用。
自回歸模型是用來根據(jù)以往的數(shù)據(jù)來回歸擬合變量肩豁,移動(dòng)平均值模型對(duì)誤差項(xiàng)進(jìn)行建模脊串,認(rèn)為誤差項(xiàng)是同期的誤差項(xiàng)和以往不同時(shí)間的誤差項(xiàng)的線性組合,這里的integrated意思是數(shù)據(jù)被替換成了原數(shù)據(jù)的后一個(gè)與前一個(gè)的差分清钥。
我們看一下ARIMA的表示方法琼锋,以下是維基百科的內(nèi)容。
對(duì)于ARIMA祟昭,表示方法是[圖片上傳失敗...(image-d246ad-1520994262000)])缕坎,p,d篡悟,q都是非零參數(shù)念赶,它們都是方程的階數(shù)。其中p是時(shí)間滯后的數(shù)目恰力,d是幾次差分叉谜,q是移動(dòng)平均模型的階數(shù)剪返。
前面一項(xiàng)是在考慮變量值庆猫,后面一項(xiàng)是考慮誤差項(xiàng),總的來說就是這個(gè)模型認(rèn)為當(dāng)前的變量值和誤差都是跟前面的變量值和誤差有關(guān)的广匙,都是前面的變量值和誤差項(xiàng)的線性組合香府,我們可以自己定要多少個(gè)滯后(也就是要考慮前面多少個(gè)值的組合)董栽。
不變性
什么是不變性,不變性就是均值和方差不會(huì)隨著時(shí)間的推移而發(fā)生改變企孩,整個(gè)過程沒有上升或者下降的趨勢(shì)锭碳,如果有趨勢(shì)的話,那么均值肯定是要改變的勿璃。
在這里要保證stationary的話就要保證[圖片上傳失敗...(image-b16711-1520994262000)](這里有點(diǎn)不明白)
Dicky-Fuller檢測(cè)不變性
(這里有兩個(gè)輸入錯(cuò)誤擒抛,如果[圖片上傳失敗...(image-781f3f-1520994262000)]應(yīng)該是不變性過程,跟上面的是對(duì)應(yīng)的补疑;另外一處是如果檢測(cè)是顯著的話歧沪,應(yīng)該是說明是不變性的(stationary))
解釋Dicky-Fuller檢測(cè)不變性是基于一階自回歸模型,也就是只考慮一階自回歸方程的系數(shù)莲组,看它是否等于1诊胞,如果系數(shù)[圖片上傳失敗...(image-5c2182-1520994262000)]的話,那么就會(huì)有[圖片上傳失敗...(image-3463e9-1520994262000)]锹杈,也就是說明這個(gè)過程是一個(gè)random walk撵孤,說明不具有不變性迈着。接著往下推導(dǎo)的話,指定[圖片上傳失敗...(image-7d4997-1520994262000)]邪码,也就是當(dāng)[圖片上傳失敗...(image-fff1aa-1520994262000)]的時(shí)候(實(shí)際上是判斷為0的顯著性如何)寥假,一階差分是一個(gè)random walk的過程。如果不為不變性過程的話霞扬,就應(yīng)該繼續(xù)進(jìn)行二階差分直到gamma具有顯著意義上的小于0糕韧,這樣才是stationary。
自問自答
為什么叫自回歸+移動(dòng)平均喻圃?
回歸我們都知道是怎么一回事萤彩,[圖片上傳失敗...(image-7b3aa0-1520994262000)],這就是一個(gè)關(guān)于用自變量x來預(yù)測(cè)因變量y的值的回歸方程斧拍,這里有兩個(gè)變量雀扶,所以不是單個(gè)變量自己內(nèi)部有關(guān)系,是兩個(gè)變量之間有關(guān)系(類比與國(guó)內(nèi)關(guān)系和國(guó)外關(guān)系)肆汹。而自回歸愚墓,那就是只有一個(gè)變量了,就是數(shù)據(jù)點(diǎn)yt(當(dāng)前時(shí)間節(jié)點(diǎn)為t的值)昂勉,這里的時(shí)間t其實(shí)嚴(yán)格意義來說不是自變量浪册,你可以認(rèn)為只是1,2岗照,3……這樣的索引符號(hào)而已村象。我們看一下上面ARMA模型的自回歸項(xiàng),我們就更加清晰了攒至。
[圖片上傳失敗...(image-5e675c-1520994262000)]
在這里u是常數(shù)厚者,后面那項(xiàng)是時(shí)間節(jié)點(diǎn)t前面的p個(gè)時(shí)間節(jié)點(diǎn)的數(shù)據(jù)值的加權(quán)組合,所以在這里可以看到由始至終都實(shí)際上都是只有一個(gè)變量--數(shù)據(jù)點(diǎn)yi迫吐,是這個(gè)變量?jī)?nèi)部之間有關(guān)系库菲,這個(gè)關(guān)系可以通過線性組合的方式來回歸預(yù)測(cè)出來,所以叫做自回歸志膀。
移動(dòng)平均更好理解一些熙宇,移動(dòng)平均實(shí)際上是在預(yù)測(cè)ARMA的后面一項(xiàng)。
[圖片上傳失敗...(image-7cad47-1520994262000)]這一項(xiàng)是對(duì)均值以及上下波動(dòng)的誤差進(jìn)行擬合的模型梧却,跟自回歸模型沒有關(guān)系奇颠,只是ARMA模型將兩者統(tǒng)一起來了败去。這個(gè)模型的思想是放航,如果沒有誤差,那么某個(gè)時(shí)間節(jié)點(diǎn)t的值應(yīng)該是圆裕,但真實(shí)情況是有誤差广鳍,真實(shí)值是隨著平均值上下波動(dòng)的荆几,并且這個(gè)模型認(rèn)為殘差的大小是當(dāng)前殘差與前面的時(shí)間節(jié)點(diǎn)的殘差是存在回歸關(guān)系的(對(duì),這里也是認(rèn)為殘差這貨也是有滯后的赊时,也就是自相關(guān)的)
什么是random walk
去除趨勢(shì)的影響
去除趨勢(shì)的影響吨铸,可以通過變量值對(duì)時(shí)間t擬合回歸,那么殘差就是真實(shí)值和回歸值之間的差祖秒。
差分
通過差分的方式可以把非靜態(tài)的過程轉(zhuǎn)化為靜態(tài)的過程诞吱。途中是一階差分,二階差分是指在一階差分基礎(chǔ)上再進(jìn)行多一次一階差分竭缝。
自問自答
問題:為什么差分的方式可以把非靜態(tài)的過程轉(zhuǎn)化為靜態(tài)的過程房维?
差分
上圖中第一列假設(shè)是原始數(shù)據(jù)點(diǎn)的值,這些數(shù)據(jù)點(diǎn)并不是stationary的抬纸,原因是數(shù)據(jù)點(diǎn)有上升的趨勢(shì)咙俩。說到這里,可能有不太理解的地方湿故,為什么一定要處理靜態(tài)的數(shù)據(jù)呢阿趁?得出靜態(tài)數(shù)據(jù)擬合后的模型,以后我們要預(yù)測(cè)的時(shí)候是怎么辦的呢坛猪?
自相關(guān)
自相關(guān)是衡量在特定的一個(gè)時(shí)間點(diǎn)上的數(shù)據(jù)值
與其他滯后時(shí)間點(diǎn)的數(shù)據(jù)值的相關(guān)性強(qiáng)弱脖阵,通俗地講,就是比如我當(dāng)前這個(gè)數(shù)據(jù)點(diǎn)是不是跟前面時(shí)間的數(shù)據(jù)點(diǎn)是有關(guān)的墅茉,相關(guān)性有多強(qiáng)独撇?(越弱說明我們忽略掉這種相關(guān)性之后造成的影響就會(huì)越弱,你可以想象親戚越遠(yuǎn)房那種是不是越不相關(guān)躁锁,忽略他們是不是越?jīng)]有影響纷铣?而如果是越親近,比如你父母战转,對(duì)你的影響就會(huì)越大)相關(guān)性強(qiáng)弱可以從-1到+1不等搜立,我們可以畫出橫坐標(biāo)為滯后時(shí)間的個(gè)數(shù)(相當(dāng)于某個(gè)具體節(jié)點(diǎn)最遠(yuǎn)可以對(duì)之后的第幾個(gè)節(jié)點(diǎn)起作用,你可以認(rèn)為是多米洛骨牌槐秧,我推倒一塊啄踊,最遠(yuǎn)是第幾塊被影響推倒,后面就不受影響)
我們看一下歐洲股票交易率的自相關(guān)系數(shù)與滯后的時(shí)間節(jié)點(diǎn)數(shù)p的關(guān)系刁标,紅線是置信水平颠通,這里是0.025。我們可以認(rèn)為如果圖中對(duì)應(yīng)柱狀圖如果高于了紅線膀懈,就說明對(duì)應(yīng)的lag值下自相關(guān)效應(yīng)是顯著的(也就是當(dāng)前l(fā)ag值下對(duì)應(yīng)的這個(gè)自相關(guān)系數(shù)值這種情況比較不太可能出現(xiàn)顿锰,那么如果一種不太可能出現(xiàn)的情況出現(xiàn)了,說明這種效應(yīng)應(yīng)該是顯著的,我們只有0.025的可能性會(huì)犯錯(cuò))硼控。
Ljung-Box q (LBQ) 統(tǒng)計(jì)量檢驗(yàn)自相關(guān)性
Ljung-Box q (LBQ) 統(tǒng)計(jì)量用于檢驗(yàn)在一段時(shí)間內(nèi)觀測(cè)的變量值是否是獨(dú)立的隨機(jī)變量刘陶,也就是變量之間是否有自相關(guān)。自相關(guān)會(huì)降低預(yù)測(cè)模型的準(zhǔn)確性牢撼,原因是我們認(rèn)為的是預(yù)測(cè)模型與時(shí)間有關(guān)匙隔,但實(shí)際上跟前面的時(shí)間變量有關(guān),預(yù)測(cè)結(jié)果就會(huì)差很多熏版。比如季節(jié)性的影響纷责,我們想要預(yù)測(cè)商場(chǎng)月銷售額,但每逢年過節(jié)銷售額都會(huì)猛漲撼短,所以在時(shí)間上可能存在著一個(gè)滯后為12的影響碰逸。Ljung-Box q (LBQ) 統(tǒng)計(jì)測(cè)試則是假設(shè)k個(gè)滯后值內(nèi)不存在自相關(guān)(原假設(shè)),假如說求出來的統(tǒng)計(jì)量p-value在顯著性水平以下的話阔加,那么就會(huì)認(rèn)為統(tǒng)計(jì)量不顯著為0饵史,也就是有顯著差別,那么就可以判定是存在著自相關(guān)性的胜榔。Ljung-Box q (LBQ) 統(tǒng)計(jì)量會(huì)用在擬合模型后面檢驗(yàn)殘差是否有相關(guān)性胳喷。
二、R語言實(shí)現(xiàn)金融數(shù)據(jù)的時(shí)間序列分析和建模
加載數(shù)據(jù)
首先是加載相應(yīng)的數(shù)據(jù)包zoo, xts, TTR
library(zoo)
library(xts)
library(TTR)
加載數(shù)據(jù)夭织,選用的是42位英國(guó)國(guó)王去世的年齡吭露,用scan函數(shù)來加載數(shù)據(jù)。
kings<-scan('http://robjhyndman.com/tsdldata/misc/kings.dat', skip=3)#skip=3表示忽略掉前3行的數(shù)據(jù)
head(kings)
輸出結(jié)果
可以看到前幾行都是數(shù)字尊惰,代表著去世國(guó)王的年齡讲竿。接下來要轉(zhuǎn)換成時(shí)序數(shù)據(jù),用ts函數(shù)弄屡。
kingstimeseries<-ts(kings)
#繪制時(shí)序圖看看
plot.ts(kingstimeseries)
數(shù)據(jù)差分
接下來是數(shù)據(jù)差分题禀,先取一階
kingsdifferences<-diff(kingstimeseries, diff=1)
plot.ts(kingsdifferences)
可以看到,確實(shí)波動(dòng)性減小了膀捷。如果不平穩(wěn)的話就要繼續(xù)差分迈嘹,所以我們用ARIMA(p, 1, q)這個(gè)模型。
尋找ARIMA(p, 1, q)這個(gè)模型里面合適的p和q
什么是自相關(guān)和偏相關(guān)
自相關(guān)的計(jì)算公式展開來是以下的形式:
也就是從h+1號(hào)的值開始全庸,求出t時(shí)間與前面的t-h時(shí)間的協(xié)方差占t時(shí)間方差的比例秀仲。
關(guān)于自相關(guān)的公式,實(shí)際上是y
t和它前面k個(gè)時(shí)間節(jié)點(diǎn)前的y_{t-k}的協(xié)方差占yt方差的比例壶笼,偏相關(guān)可以認(rèn)為是yt和y_{t-k}的關(guān)系神僵,但是yt也會(huì)受到其他滯后項(xiàng)的影響,所以減去這一部分滯后項(xiàng)的影響覆劈。(實(shí)際上這里沒有真正搞懂保礼,準(zhǔn)備回頭再仔細(xì)研讀一下資料)
繪制自相關(guān)圖acf和偏相關(guān)圖pacf以確定存在自相關(guān)和偏相關(guān)的滯后時(shí)間個(gè)數(shù)沛励。
自相關(guān)
acf<-acf(kingsdifferences, lag.max=20)
acf<-acf(kingsdifferences, lag,max=20, plot=False)
從圖中可以看出1-20個(gè)滯后不存在著顯著的自相關(guān)性,因此p定義為1氓英。
偏相關(guān)
pacf(kingsdifferences, lag.max=20)
pacf(kingsdifferences, lag.max=20, plot=FALSE)
從圖中可以看出侯勉,在滯后項(xiàng)3-20就沒有顯著的偏相關(guān)性鹦筹,取q=3铝阐。
因此最終模型定為ARIMA(1, 1, 3)。
建立ARIMA模型
先擬合ARIMA(1, 1, 3)模型
kings.arima<-arima(kingstimeseries, order=c(1, 1, 3))
summary(kings.arima)
kingsarimaforecast<-forecast(kings.arima, h=5)
#畫出未來五位國(guó)王的年齡
在這里藍(lán)線是預(yù)測(cè)值铐拐,藍(lán)色區(qū)域是80%的置信區(qū)間徘键,灰色部分是95%的置信區(qū)間。
模型誤差檢驗(yàn)
我們檢查下預(yù)測(cè)值殘差的相關(guān)性遍蟋,繪制自相關(guān)圖吹害。
acf(kingsarimaforecast$residuals, lag.max=20)
可以看到殘差之間已經(jīng)沒有明顯的相關(guān)性了。
用Ljung-Box q (LBQ) 統(tǒng)計(jì)測(cè)試方法檢查下自相關(guān)的顯著性虚青。
Box.test(kingsarimaforecast$residuals, lag=20, type='Ljung-Box')
Ljung-Box q (LBQ) 統(tǒng)計(jì)顯示p值為0.9515它呀,說明在95%的置信水平內(nèi),沒有充分證據(jù)表明殘差滯后值之間存在著非零相關(guān)性棒厘,因此應(yīng)該接受零假設(shè)(殘差之間沒有相關(guān)性)纵穿。
建立自動(dòng)化ARIMA模型
如果我們直接把時(shí)序數(shù)據(jù)傳入到自動(dòng)化的ARIMA模型的話,就可以得出自動(dòng)擬合后的p, d, q值奢人。
kings.arima1<-auto.arima(kingstimeseries)
summary(kings.arima1)
最后得出的結(jié)果是ARIMA(0, 1, 1)谓媒,接下來我們嘗試根據(jù)這個(gè)自動(dòng)模型去預(yù)測(cè)未來五位國(guó)王的情況。
kingsarimaforecast1<-forecast(kings.arima1, h=5)
kingsarimaforecast1
plot(kingsarimaforecast1)
誤差檢驗(yàn)
acf(kingsarimaforecast1$residuals, lag.max=20)
box.test(kingsarimaforecast1$residuals, lag=20, , type='Ljung-Box')
最后結(jié)果表明何乎,1-20的滯后的殘差都不存在非零相關(guān)性句惯。
自問自答
為什么最后要檢驗(yàn)殘差的相關(guān)性?
這個(gè)問題待回答支救。
- Introduction To Stationary And Non-Stationary Processes(關(guān)于靜態(tài)過程和非靜態(tài)過程的入門解釋)
- Random walk model(杜克大學(xué)比較詳細(xì)的參考資料)
- Youtube TimeSeries ARIMA Model(上面有完整的解釋的視頻)
- Quora關(guān)于ARIMA模型的一個(gè)很好解釋
- 維基百科關(guān)于stationary process
- 維基百科關(guān)于Autoregressive integrated moving average
- 什么是 Ljung-Box q (LBQ) 統(tǒng)計(jì)量
- 關(guān)于為什么不能分析非靜止的數(shù)據(jù)
- 關(guān)于自相關(guān)和偏相關(guān)的解釋