格蘭傑因果檢驗_R實現

前言

  • 先做單位根檢驗,看變量序列是否平穩序列,若平穩,可構造迴歸模型等經典計量經濟學模型;若非平穩,進行差分
  • 當進行到第i次差分時序列平穩,則服從i階單整(注意趨勢、截距不同情況選擇,根據P值和原假設判定)。
  • 若所有檢驗序列均服從同階單整,可構造VAR模型,做協整檢驗(注意滯後期的選擇),判斷模型內部變量間是否存在協整關係,即是否存在長期均衡關係。
  • 如果有,則可以構造VEC模型或者進行Granger因果檢驗,檢驗變量之間“誰引起誰變化”,即因果關係。
一、平穩性問題

1、單位根檢驗是序列的平穩性檢驗,如果不檢驗序列的平穩性直接OLS容易導致僞迴歸。

2、當檢驗的數據是平穩的(即不存在單位根),要想進一步考察變量的因果聯繫,可以採用格蘭傑因果檢驗,但要做格蘭傑檢驗的前提是數據必須是平穩的,否則不能做。

3、當檢驗的數據是非平穩(即存在單位根),並且各個序列是同階單整(協整檢驗的前提),想進一步確定變量之間是否存在協整關係,可以進行協整檢驗,協整檢驗主要有EG兩步法和JJ檢驗

A、EG兩步法是基於迴歸殘差的檢驗,可以通過建立OLS模型檢驗其殘差平穩性(一般用EG兩步法)

B、JJ檢驗是基於迴歸係數的檢驗,前提是建立VAR模型(即模型符合ADL模式)

4、當變量之間存在協整關係時,可以建立ECM進一步考察短期關係,Eviews這裏還提供了一個Wald-Granger檢驗,但此時的格蘭傑已經不是因果關係檢驗,而是變量外生性檢驗,請注意識別

二、協整性問題

1、格蘭傑檢驗只能用於平穩序列!這是格蘭傑檢驗的前提,而其因果關係並非我們通常理解的因與果的關係,而是說x的前期變化能有效地解釋y的變化,所以稱其爲“格蘭傑原因”。

2、非平穩序列很可能出現僞迴歸,協整的意義就是檢驗它們的迴歸方程所描述的因果關係是否是僞迴歸,即檢驗變量之間是否存在穩定的關係。所以,非平穩序列的因果關係檢驗就是協整檢驗。

3、平穩性檢驗有3個作用:1)檢驗平穩性,若平穩,做格蘭傑檢驗,非平穩,作協正檢驗。2)協整檢驗中要用到每個序列的單整階數。3)判斷時間學列的數據生成過程。

三、格蘭傑因果問題

其實很多人存在誤解。有如下幾點,需要澄清:

第一,格蘭傑因果檢驗是檢驗統計上的時間先後順序,並不表示而這真正存在因果關係,是否呈因果關係需要根據理論、經驗和模型來判定。

第二,格蘭傑因果檢驗的變量應是平穩的,如果單位根檢驗發現兩個變量是不穩定的,那麼,不能直接進行格蘭傑因果檢驗,所以,很多人對不平穩的變量進行格蘭傑因果檢驗,這是錯誤的。

第三,協整結果僅表示變量間存在長期均衡關係,那麼,到底是先做格蘭傑還是先做協整呢?因爲變量不平穩才需要協整,所以,首先因對變量進行差分,平穩後,可以用差分項進行格蘭傑因果檢驗,來判定變量變化的先後時序,之後,進行協整,看變量是否存在長期均衡。

第四,長期均衡並不意味着分析的結束,還應考慮短期波動,要做誤差修正檢驗。

理論參考:https://blog.csdn.net/littlely_ll/java/article/details/54866179

R語言實現

  • 創建兩列數據
e1 = rnorm(500)
e2 = rnorm(500)
y1 = 0.8  + cumsum(e1)
y2 = 0.6  + cumsum(e2)
plot(y1)
line(y2)

cumsum累加前面的數據

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-sOWCcBg4-1591775914492)(evernotecid://DD492144-9AFF-43C1-9BC0-5A625709FC62/appyinxiangcom/28357599/ENResource/p49)]

單位根檢驗
library(tseries)
adf.test(y1)
adf.test(y2)

Augmented Dickey-Fuller Test
data: y1
Dickey-Fuller = -2.3544, Lag order = 7, p-value = 0.4283
alternative hypothesis: stationary

Augmented Dickey-Fuller Test
data: y2
Dickey-Fuller = -2.9604, Lag order = 7, p-value = 0.1718
alternative hypothesis: stationary

P值均大於0.05,所以兩者都沒有通過單位根檢驗(都是不平穩的時間序列),因此對兩者進行一階差分,然後再進行單位根檢驗。

adf.test(diff(y1))
adf.test(diff(y2))

Augmented Dickey-Fuller Test
data: diff(y1)
Dickey-Fuller = -8.7806, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

Augmented Dickey-Fuller Test
data: diff(y2)
Dickey-Fuller = -8.0616, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

都通過了平穩性檢驗

yy1=diff(y1)
yy2=diff(y2)
sr.reg = lm(yy1 ~ yy2)
error = residuals(sr.reg)
plot(error, main = "Plot of error")
adf.test(error)
summary(sr.reg)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BgZ4l9Gd-1591775914495)(evernotecid://DD492144-9AFF-43C1-9BC0-5A625709FC62/appyinxiangcom/28357599/ENResource/p50)]

Augmented Dickey-Fuller Test
data: error
Dickey-Fuller = -8.8595, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

殘差通過單位根檢驗

Call:
lm(formula = yy1 ~ yy2)
Residuals:
Min 1Q Median 3Q Max
-3.8563 -0.6486 0.0671 0.7018 2.7345
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.01142 0.04461 0.256 0.798
yy2 -0.07026 0.04520 -1.555 0.121
Residual standard error: 0.9964 on 497 degrees of freedom
Multiple R-squared: 0.004839, Adjusted R-squared: 0.002837
F-statistic: 2.417 on 1 and 497 DF, p-value: 0.1207

協整檢驗未通過,也就是不能確認兩者具有協整關係

爲了走通流程我們接下來還是繼續做格蘭傑檢驗

格蘭傑檢驗
library(zoo)
library(lmtest)
grangertest(yy1~yy2,order=2)

Granger causality test
Model 1: yy1 ~ Lags(yy1, 1:2) + Lags(yy2, 1:2)
Model 2: yy1 ~ Lags(yy1, 1:2)
Res.Df Df F Pr(>F)
1 492
2 494 -2 3.6924 0.02561 *
—Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1

P值小於0.05,通過檢驗,也就是拒絕了yy1不是引起yy2格蘭傑變化的原因
即yy1是引起yy2格蘭傑變化的原因

grangertest(yy2~yy1,order=2)

Granger causality test
Model 1: yy2 ~ Lags(yy2, 1:2) + Lags(yy1, 1:2)
Model 2: yy2 ~ Lags(yy2, 1:2)
Res.Df Df F Pr(>F)
1 492
2 494 -2 1.0705 0.3436

P值大於0.05,沒有通過檢驗,也就是接受了yy2不是引起yy1格蘭傑變化的原因
即yy1不是引起yy2格蘭傑變化的原因

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章