時間序列分析之理論篇
前言:
一說起時間序列大家並不會陌生。每時刻的甲醛濃度變化、每日股票閉盤價格、共享單車每日租車數等等都可以看做一系列時間點上的觀測,在一系列時間點上觀測獲取的資料也就是我們俗稱的時間序列資料。本文主要介紹常見的AR、MA、ARMA、ARIMA平穩時間序列模型以及時間序列常見的數學特徵以及時間序列建模的流程,此篇相對來說偏於理論、偏於公式,下篇會給出一個關於時間序列的Python例項。
下面我們通過兩幅圖來簡單看看時間序列的樣子。圖一是2000-2016年美國消費者信心指數【http://data.eastmoney.com/cjsj/xfzxx.html】;圖二是某地在某段時間pm2.5的濃度變化情況;圖三是1949年到
可以看出來時間序列資料的形狀真的是千奇百怪,但是不管怎麼樣,要想預測好資料還得見招拆招,根據不同的資料特點做不同的檢驗,選擇不同的模型,確定不同的引數。
數學特徵
在介紹模型之前,先看看時間序列資料有啥部件需要我們知曉,下面介紹時間序列的數學特徵。像一般的隨機變數一樣,時間序列也有隨機變數序列,也有相應的均值、自協方差、方差、期望、相關係數等,只不過這裡我們要加上函式倆字,也就是均值函式、自協方差函式、方差函式、期望函式、相關係數函式,之所以加上函式二字,是因為時間序列對應的這些數學特徵變成了時間的函式。來看看它們具體的數學表示式(公式是一個一個敲上去的,如果有手誤請指正):
一般隨機變數的數學特徵:
期望:
對於連續型隨機變數X,有概率密度函式f(x),則定義
為X的數學期望。
對於離散型的隨機變數X,X的數學期望就是隨機變數X的取值與發生概率相乘得到的加和,這個是高中知識就不再贅述。
方差:
-設X施一個隨機變數,若 E{[X-E(X)]^2}存在,則稱E{[X-E(X)]}為X的方差,記為D(X)或Var(X),即D(X) = Var(x) = E{[X-E(X)]^2}
- √(D(X))稱為X的標準差。
-若X是離散型隨機變數,則
-若X是連續型隨機變數,則
- D(X)= E{[X-E(X) ]^2 }= E{X^2-2XE(X)+[E(X) ]^2 }=E(X^2 )-2E(X)E(X)+[E(X) ]^2=E(X^2)-[E(X)]^2
協方差:
-稱E{(X-E(X))(y-E(Y))}為隨機變數X與Y的協方差,記為Cov(X,Y)
Cov(X,Y)=E{(X-E(X))(y-E(Y))}=E(XY)-E(X)E(Y)
相關係數:
稱為隨機變數X與Y的相關係數
隨機變數序列的一些數學特徵
類比於隨機變數的數學特徵,下面是隨機變數序列的一些數學特徵:
(ps:由於此處公式複製出現格式問題,所以用了圖片)
平穩性:
做平穩時間序列模型比知必會的平穩性概念:
1.平穩性就是要求經由樣本時間序列所得到的擬合曲線
在未來的一段期間內仍能順著現有的形態“慣性”地延續下去
2.平穩性要求序列的均值和方差不發生明顯變化
嚴平穩與弱(寬)平穩:
1.嚴平穩:嚴平穩表示的分佈不隨時間的改變而改變。如:白噪聲(正態),無論怎麼取,都是期望為0,方差為1
2.弱平穩:期望與相關係數(依賴性)不變未來某時刻的t的值Yt就要依賴於它的過去資訊,所以需要依賴性
弱平穩時間序列的數學特徵:
4.自相關係數
差分法:
對於不平穩的時間序列,我們一般會使用差分的方法得到想要的平穩序列,下圖是美國消費者信心指數序列,一階差分和二階差分後的序列。
其他變換:對數變換,冪變換等
時間序列影響因素(影響因素的疊加)
1.長期趨勢Trend:現象在較長時期內受某種根本性因素作用而形成的總的變動趨勢
2. 迴圈變動\週期性Cyclic:現象以若干年為週期所呈現出的波浪起伏形態的有規律的變動
3. 季節性變化Seasonalvariation:現象隨著季節的變化而發生的有規律的週期性變動
4. 不規則變化Irregularmovement:是一種無規律可循的變動,包括嚴格的隨機變動和不規則的突發性影響很大的變動兩種型別
平穩時間序列模型介紹:
自迴歸模型(AR):
自迴歸模型的限制:
1.自迴歸模型是用自身的資料來進行預測
2.必須具有平穩性
3.必須具有自相關性,如果自相關係數小於0.5,則不宜採用
4.自迴歸只適用於預測與自身前期相關的現象
移動平均模型(MA):
自迴歸移動平均模型(ARMA):
ARIMA(p,d,q)模型:
全稱為差分自迴歸移動平均模型(Autoregressive Integrated Moving Average Model,簡記ARIMA)
2.AR是自迴歸, p為自迴歸項; MA為移動平均,q為移動平均項數,d為時間序列成為平穩時所做的差分次數,如一階差分:時間序列在t與t-1時刻的差值原理:將非平穩時間序列轉化為平穩時間序列然後將因變數僅對它的滯後值以及隨機誤差項的現值和滯後值進行迴歸所建立的模型
自相關函式ACF(autocorrelation function)
1.有序的隨機變數序列與其自身相比較
2.自相關函式反映了同一序列在不同時序的取值之間的相關性
3.公式:
4.的取值範圍為[-1,1]
偏自相關函式(PACF)(partial autocorrelation function):
1.對於一個平穩AR(p)模型,求出滯後k自相關係數時,實際上得到並不是x(t)與x(t-k)之間單純的相關關係;
2. x(t)同時還會受到中間k-1個隨機變數x(t-1)、 x(t-2)、 ……、 x(t-k+1)的影響,而這k-1個隨機變數又都和x(t-k)具有相關關係,所以自相關係數裡實際摻雜了其他變數對x(t)與x(t-k)的影響;
3.剔除了中間k-1個隨機變數x(t-1)、 x(t-2)、 ……、 x(t-k+1)的干擾之後,x(t-k)對x(t)影響的相關程度;
4.ACF還包含了其他變數的影響,而偏自相關係數PACF是嚴格這兩個變數之間的相關性。
ARIMA(p,d,q)階數確定:
模型 | ACF | PACF |
AR(p) | 拖尾,衰減趨於零 | P階後截尾 |
MA(q) | q階後截尾 | 拖尾,衰減趨於零 |
ARMA(p,q) | 拖尾,q階後衰減趨於零 | 拖尾,P階後衰減趨於零 |
截尾:落在置信區間內(95%的點都符合該規則)
AR(p)看PACF,MA(q) 看ACF
下圖是Python做出的ACF和PACF圖:
ARIMA建模流程:
1.將序列平穩(差分法確定d)
2. p和q階數確定:ACF與PACF
3.得到模型ARIMA(p,d,q)
模型選擇AIC與BIC: 選擇更簡單的模型
1.AIC:赤池資訊準則(Akaike Information Criterion,AIC)
2.BIC:貝葉斯資訊準則(BayesianInformation Criterion,BIC)
k為模型引數個數,n為樣本數量,L為似然函式
模型診斷
殘差檢驗分析:
1.殘差圖肉眼簡單檢視
2.ARIMA模型的殘差是否是平均值為0且方差為常數的正態分佈
3.QQ圖:線性即正態分佈
4.Ljung-Box檢驗:獨立性
過度擬合和引數冗餘:
在過度擬合時,不要同時增加AR和MA部分的階數
如果擬合了MA(1)模型後,殘差在2階滯後處仍存在明顯的相關性,那麼應該嘗試MA(2),而不是ARMA(1,1)模型。
預測
當上面的步驟走完之後,就可以對資料進行預測了,也就是時間序列建模的主要目標之一,預測該序列未來的取值,此外我們要評估預測的精度。一般採用最小均方誤差標準。
總結:
本文從時間序列的例子說起,然後從隨機變數的數學特徵引入隨機變數序列的數學特徵,之後介紹了平穩性,包括嚴平穩和寬平穩的概念及特點,對於非平穩時間序列的處理策略,接著給出時間序列的影響因素介紹,隨後重點介紹了平穩時間序列的模型,包括AR、MA、ARMA和ARIMA,給出ARIMA的建模流程以及相應的引數p, q由PACF、ACF的確立,以及差分階數d的確立。對於模型一般採用AIC 、BIC,此外Python也給出了HQIC的標準。一個完整的時間序列建模還需要對模型進行診斷,包括殘差的正態性、獨立性等檢驗,文中給出檢驗方法策略;為了避免過度擬合及引數冗餘也給出一點建模技巧。最後就是對於時間序列的未來值進行預測。
拓展:
時間序列除了文中給出的AR、MA、ARMA、ARIMA還有季節性的ARIMA模型、乘法季節ARMA模型、非平穩季節ARIMA模型,此外在金融領域也有異方差時間序列模型:ARCH、GARCH,門限模型等等,當然啦,像多元線性迴歸一樣,也存在著多元時間序列。此外,對於時間序列資料來說又有面板資料、截面資料、函式型資料等,對於不同的資料又存在著對應的模型,這裡就不再詳細說明了。
往期精彩文章推薦
掃描燕哥微訊號,
拉你進機器學習大牛群。
福利滿滿,名額已不多…
80%的AI從業者已關注我們微信公眾號