___ ____ ____ ____ ____ (R)
/__ / ____/ / ____/
___/ / /___/ / /___/ 13.1
Statistics/Data Analysis
此次系列文章的主題是通過Stata軟體來分析時間序列的平穩和非平穩關係,以及如何通過Stata軟體來進行不同時間序列模型的預測性分析。
Stata軟體介紹:(https://www.stata.com/)
Stata is the solution for your data science needs. Obtain and manipulate data. Explore. Visualize. Model. Make inferences. Collect your results into reproducible reports.
一、背景介紹
時間序列模型是將一個或一組變量按照時間次序排列,用於解釋變量和相互關係的數學表達式,所得到的離散數字組成的序列集合。時間序列模型,可分為平穩時間序列和非平穩時間序列。平穩時間序列可以用來擬合回歸方程進行未來的預測,而非平穩的時間序列不能直接做回歸,會產生沒有實際意義的偽回歸。(不平穩的時間序列數據可能會帶來t檢驗失敗、自回歸係數估計值有偏向的等問題)
首先,判斷一個時間序列是不是平穩,主要有三個評價指標:
1. 均值是與t無關的函數
2. 方差是與t無關的函數 (即方差齊性)
3. 協方差是與t無關的函數。(協方差用于衡量兩個變量的總體誤差。當兩個變量是相同的情況時,協方差體現為方差。)
(圖片來源:https://blog.csdn.net/qq_40006058/article/details/80191168)
對於單獨的非平穩時間序列,需要通過分來將非平穩時間序列變為平穩時間序列。如果對於兩個非平穩時間序列,它們的某些線性組合是平穩的,那麼這兩個非平穩時間序列則存在協整關係,我們便可以基於協整關係去探索序列之間的長期均衡關係了。
二、統計學模型
驗證時間序列的模型有:
AR - Auto Regression, 自回歸模型。自回歸模型AR(p),p-自回歸階數;AR可以解決當前數據與後期數據之間的關係;
MA - Moving Average,移動平均模型。移動平均模型MA(q),q-移動平均階數;MA則可以解決隨機變動也就是噪聲的問題;
ARMA - Auto Regression and Moving Average,自回歸移動平均模型。自回歸移動平均模型是與自回歸和移動平均模型兩部分組成;(以上三類模型可以直接應用於平穩時間序列模型)
ARIMA - Auto Regression Integreate Moving Average,差分自回歸移動平均模型。同前面的三種模型,ARIMA模型也是基於平穩的時間序列的或者差分化後是穩定的,另外前面的幾種模型都可以看作ARIMA的某種特殊形式。表示為ARIMA(p, d, q)。p為自回歸階數,q為移動平均階數,d為時間成為平穩時所做的差分次數。(前面三種模型,d=0,即平穩時間序列模型不需要做差分)
ARCH - Auto Regressive Conditional Heteroskedasticity, 自回歸條件異方差模型,用來解決傳統計量經濟學對時間序列變量的第二個假設(變異數恆定)所引起的問題;
GARCH - Generalized Auto Regressive Conditional Heteroskedasticity, 廣義自回歸條件異方差模型,GARCH模型是一個專門針對金融數據所量體定做的回歸模型。和普通回歸模型相比,GARCH對誤差的方差進行了進一步的建模,特別適用于波動性的分析和預測,這樣的分析對投資者的決策能起到非常重要的指導作用;
VAR - Vector Auto Regression, 向量自回歸模型, 描述在同一個樣本期間內的n個變量(內生變量)可以作為他們過去值的線性函數;VAR模型的方法是通過將變量作為一個系統來預測,被稱為「多變量時間序列」,即向量自回歸;
受限因變量模型:通俗的講,是由於某種原因無法觀察到被解釋變量的全部值。在實際中,還會經常遇到因變量受到某種限制的情況,這種情況下,取得樣本數據來自總體的一個子集,可能不能完全反映總體。例如,小時工資、住房價格和名義利率都必須大於零。這時需要建立的經濟計量模型稱為受限因變量模型(limited dependent variable model )。
斷尾回歸模型
截取回歸模型
樣本選擇模型
三、Stata實證分析
ARIMA模型實踐
ARIMA模型分析時間序列的基本步驟為:將原始數據的時間序列可視化,觀察平穩與非平穩分布 - 通過單位根檢驗,判斷時間序列是否為平穩 - 通過ADF找到最優參數,建立ARIMA模型 - 進行預測
打開Stata/MP 13.1軟體,初始界面如下:
打開實例數據wp1,stata默認的數據文件後綴為.dta
打開data-editor,查看導入的數據。wpi - wholesales price index - 批發價格指數,Lnwpi - wpi的對數。
要檢測時間數據,需要首先定義數據為時間序列,在command中輸入命令:tsset t
將原始數據的時間序列進行可視化處理,作圖觀察時間序列的趨勢:
line wpi t
直觀看此時間序列為非平穩時間序列分布;但是需要通過驗證才可以得出相應結論。
通過觀察自相關圖與偏相關圖,最主要的目的還是確定序列的ARMA(p,q)模型的具體形式。
一般拿到數據後,先看你數據是否存在協整關係,存在就用平穩數據,不存在只能嘗試差分後處理。差分的目的是消除序列的不平穩性,使其波動曲線更平穩。通過一階插分和二階插分的時序,來進行ADF單位根檢驗,進而判斷後面的序列是否平穩。
對原始數據進行單位根檢驗:dfuller ln_wpi
Z test都大於檢驗各檢驗臨界值,且p-value>0.05
所以原序列是非平穩時間序列;
對一階差分後的數據進行單位根檢驗:dfuller d.ln_wpi
Z-test都小於各檢驗臨界值,且p-value<0.05
所以一階差分後,序列變為平穩時間序列;
對時序進行二階差分的單位根檢驗:dfuller d2.ln_wpi
結果顯示,二階差分的時序為平穩時間序列。
(* 滯後幾階與幾階差分的含義不同:滯後二階是指取前兩期的值;二階差分就是,後一期一階差分減去前一期一階差分。)
一階差分就是離散函數中連續相鄰兩項之差。繪製一階差分圖:
line d.wpi t,yline(0)
(yline(0)表示在y=0處做一條直線)
繪製二階插分圖:line d2.wpi t,yline(0)
可以看出二階差分的時序圖,直觀上已經接近於一個平穩時間序列了。
AC圖確定的是p,PAC圖確定的是q。判斷ARIMA模型的傳統方法是通過ACF(自相關圖)和PACF(偏自相關圖), 看ACF和PACF快速衰減的位置,看不同階數對應快速衰減到標準差之內的位置。觀察ACF和PACF的模式,主要看圖形分布上是否有如下兩個特徵:
截尾:到了某個位置,係數突然變化,像被「截斷」了一樣;
拖尾:就是係數整體是一個單調漸變的趨勢,但都不為0;
若ACF拖尾,PACF截尾,用AR算法;
若ACF截尾,PACF拖尾,用MA算法;
若ACF,PACF都是拖尾,用ARMA算法;不平穩用ARIMA算法;
如果,ACF和PACF的模式不明顯,則需要嘗試不同的參數值,然後通過赤池信息準則來判斷。
繪製一階差分的自相關圖:ac d.wpi
(AC - Autocorrelation)
繪製一階差分的偏自相關:pac d.wpi
(PAC - Partial Autocorrelation)
根據圖示,ACF的特徵類似於拖尾,PACF則沒有明顯的特徵模式。當ACF,PACF沒有明顯特徵時,需要通過赤池信息來判斷。
赤池信息準則:通過AIC作為衡量統計模型擬合優良性的一種標準。它建立在熵的概念基礎上,可以權衡所估計模型的複雜度和此模型擬合數據的優良性。根據不同參數組合的AIC值來判斷模型的好壞,AIC越小越好。
(AIC實際上是對樣本內誤差(in sample error)的估計量,即在訓練樣本的基礎上,保持自變量不變,觀察到一組新的y', 然後計算模型在這個新樣本中得到誤差的期望值。)
通過單位根檢驗判斷此時間序列是否為平穩時間序列:dfuller ln_wpi,lag(3) trend regress (此處假設滯後3期,lag(3)。正常做法是要進行多次滯後項的驗證,然後去評判擬合回歸的顯著性效果。)
ADF(Augmented Dickey-Fuller) 單位根檢驗 (unit root test) 的原假設為:H0:p=1, 備擇假設為:H1:p<1. (p=1表明存在單位根,原時間序列為非平穩時間序列)
ADF檢驗的邏輯:如果序列平穩,則不會存在單位根;如果序列不平穩,則可以通過差分變換,檢驗差分後的序列是否平穩。
ADF原假設H0為存在單位根(非平穩),對於一個平穩的時間序列數據,就要在給定的置信水平上顯著,拒絕原假設。
拒絕原假設的判別條件:1>統計量顯著小於3個置信度(1%,5%,10%)的臨界統計值時;2>Z統計量的P-value接近0。
\]
通過單位根檢驗結果可以看到在1%,5%,10%顯著性水平下的臨界值分別為1%-critical value=-4.033, 5%-critical value=-3.447, 10%-critical value=-3.147,Z檢驗統計量值為-2.25。而ADF是左側單邊檢驗,只要Z檢驗統計量值大於各臨界值,則不能拒絕原假設H0(即p=1),原序列為非平穩時間序列。且p-value=0.4617,不能顯著拒絕原假設。
回歸係數的解讀:
L1 - 表示回歸係數;
LD,L2D和L3D - 分別代表了滯後1-3階滯後項對應的係數;LD滯後項p值為0,L2D滯後項p值為0.036,兩項在5%顯著性水平上都非常顯著;L3D滯後項的p值為0.145,在5%顯著性水平上顯著性一般;
_trend - 時間趨勢項;p值為0.024,時間趨勢在5%水平上很顯著;
_cons - 常數項;
在Stata中,ARIMA模型被看做帶有ARIMA擾動項的結構模型,ARIMA模型公式中本質上使用的是MLE(最大似然估計),對於序列ln_wpi,通過判斷為非平穩時間序列,所以ARIMA(p,d,q)模型中,d=1。ARIMA(p,1,q)中的 自回歸階數p 和 移動平均階數q 通過信息準則來確定,假定模型為ARIMA(1,1,1),在Stata中輸入如下命令:
arima ln_wpi,airma(1,1,1)
estat ic
再分別求出ARIMA(2,1,1),ARIMA(1,1,2),ARIMA(2,1,2)的結果:
ARIMA(2,1,1)
ARIMA(1,1,2)
ARIMA(2,1,2)
可以看出ARIMA(1,1,1)中的AIC和BIC最小,p=1,q=1,d=1為ARIMA模型最優參數。擬合模型後,需要對殘差序列檢驗是否為白噪聲,輸入:
predict r,residual
數據集中生成了新的殘差序列r:
一個標準的檢驗流程中,需要比較不同預測方法得到的預測結果的殘差。正常情況下,殘差應該為平穩序列。
我們對得到的殘差列進行單位根檢驗:
dfuller r
根據z-test和p-value,殘差為平穩時間序列;
繪製殘差圖如下,也可以直觀的看出是一個平穩的時間序列。
line r t,yline(0)
係數顯著性檢驗通過後,要進行模型的有效性檢驗,也就是檢驗殘差性是否為白噪聲:
用Q統計量進行白噪聲(white noise)檢驗:
wntestq r
wntestb r
通過白噪聲檢驗的結果,可知模型的有效性擬合效果較好。
下面開始模型的預測:
生成未差分的wpi時間序列y:preidct y,y
生成差分後的wpi序列xb:predict xb,xb
比對ARIMA模型生成的預測值和原始值的擬合線對比:
line ln_wpi y t, yline(0)
(紅色為預測值擬合線,黑色為原始值擬合線)
樣本外預測,首先添加預測值的空白填充位置:
tsappend,add(4)
對差分後序列的預測:predict y_hat
對原序列wpi的預測:predict yy_hat,y
(在STATA中,ARIMA模型只能預測未來1期的數值。)
將預測值與原始值的擬合曲線進行比較:line ln_wpi yy_hat t, yline(0)
可以看出紅色擬合線對應的多出一期的預測值已經體現。
下一篇將總結時間序列模型之ARCH和GARCH模型,在STATA中的使用方法和規範。
「筆人自認才疏學淺,僅略知皮毛,更兼時間和精力所限,文中錯謬之處在所難免,若蒙讀者諸君不吝告知,將不勝感激。」