對協整向量施加限制,R 範例
下面給出的程式碼估計具有 4 個協整向量的 VEC 模型。這是一個可重現的程式碼,所以只需複制並粘貼到您的 R 控制台(或腳本編輯器)中。
nobs = 200 e = rmvnorm(n=nobs,sigma=diag(c(.5,.5,.5,.5,.5))) e1.ar1 = arima.sim(model=list(ar=.75),nobs,innov=e[,1]) e2.ar1 = arima.sim(model=list(ar=.75),nobs,innov=e[,2]) e3.ar1 = arima.sim(model=list(ar=.75),nobs,innov=e[,3]) e4.ar1 = arima.sim(model=list(ar=.75),nobs,innov=e[,4]) y5 = cumsum(e[,5]) y1 = y5 + e1.ar1 y2 = y5 + e2.ar1 y3 = y5 + e3.ar1 y4 = y5 + e4.ar1 data = cbind(y1,y2,y3,y4,y5) jcointt = ca.jo(data,ecdet="const",type="trace",K=2,spec="transitory") summary(jcointt)
我繼續使用四個協整向量並估計了一個 VECM:
vecm <- cajorls(jcointt,r=4) summary(vecm$rlm) print(vecm)
以下是估計的協整向量:
$beta ect1 ect2 ect3 ect4 y1.l1 1 0 0 0 y2.l1 0 1 0 0 y3.l1 0 0 1 0 y4.l1 0 0 0 1 y5.l1 -1.07 -1.05 -0.985 -1.05 constant -0.16 0.505 -0.05 0.116
現在,我想對第一個協整向量(
ect1
參數)施加限制,以便分析變數之間的長期關係。這是我在強加和重新參數化協整向量後想要獲得的結果:ect1 ect2 ect3 ect4 y1.l1 1 0 0 0 y2.l1 b1.1 1 0 0 y3.l1 b2.1 0 1 0 y4.l1 b3.1 0 0 1 y5.l1 b4.1 b4.2 b4.3 b4.4 constant b0.1 b0.2 b0.3 b0.4
這裡,b1.1 到 b0.1 是係數 ( $ \beta_1,\beta_2,\beta_3,\beta_4 $ ) 的第一個協整向量標記為
ect1
,現在可以寫為 $ y_{1,t-1}=\beta_0-\beta_1y_{2,t-1}-\beta_2y_{3,t-1}-\beta_3y_{4,t-1}-\beta_4y_{5,t-1} $ . 類似地,b4.2 和 b0.2 是第二個協整方程等的係數。我想知道您是否可以幫助進一步實施限制並重新估計帶有限制的 VECM。
urca
包有一個bltest()
,bh6lrtest()
和bh5lrtest()
函式來測試協整向量的限制,但是,我需要一些關於如何構造我的H
矩陣(限制矩陣)的指導謝謝。
我知道這是大約兩年前提出的,但我想我會回答這個問題。
除了第 1:4 行和第 2:4 列之外,您要估計的 H 似乎與您從 Johansen 檢驗中收到的值相同。您只需要將這些值設置為 0 和 1,考慮到對角線(非常接近)1 並且其他值足夠小,可以將它們四捨五入到需要的位置,這相當容易。
程式碼:
# Set H to found cointegrating vectors H <- vecm$beta # Replace needed rows with rounded values H[1:4, 2:4] <- round(H[1:4, 2:4])
這具有創建預期限制矩陣的效果,如下所示:
ect1 ect2 ect3 ect4 y1.l1 1.000000e+00 0.00000000 0.00000000 0.000000 y2.l1 6.001737e-17 1.00000000 0.00000000 0.000000 y3.l1 -2.103352e-17 0.00000000 1.00000000 0.000000 y4.l1 3.744563e-17 0.00000000 0.00000000 1.000000 y5.l1 -9.857458e-01 -1.00335472 -1.01229025 -1.066448 constant 5.632217e-02 0.02311308 0.07969588 -0.519249
現在,執行
blrtest
函式:blrresult <- blrtest(jcointt, H, 4)
結果是:
> summary(blrresult) ###################### # Johansen-Procedure # ###################### Estimation and testing under linear restrictions on beta The VECM has been estimated subject to: beta=H*phi and/or alpha=A*psi ect1 ect2 ect3 ect4 y1.l1 1.000000e+00 0.00000000 0.00000000 0.000000 y2.l1 6.001737e-17 1.00000000 0.00000000 0.000000 y3.l1 -2.103352e-17 0.00000000 1.00000000 0.000000 y4.l1 3.744563e-17 0.00000000 0.00000000 1.000000 y5.l1 -9.857458e-01 -1.00335472 -1.01229025 -1.066448 constant 5.632217e-02 0.02311308 0.07969588 -0.519249 Eigenvalues of restricted VAR (lambda): [1] 0.2009 0.1479 0.1410 0.0963 The value of the likelihood ratio test statistic: 0 distributed as chi square with 8 df. The p-value of the test statistic is: 1 Eigenvectors, normalised to first column of the restricted VAR: [,1] [,2] [,3] [,4] y1.l1 1.0000 1.0000 1.0000 1.0000 y2.l1 -0.7020 1.1557 -0.2307 -3.3582 y3.l1 0.5135 -0.3613 -0.2651 -6.0261 y4.l1 -0.2599 0.1480 2.9151 -1.5204 y5.l1 -0.5241 -1.9374 -3.5946 10.1052 constant 0.2160 -0.0226 -1.4838 0.2879 Weights W of the restricted VAR: [,1] [,2] [,3] [,4] y1.d -0.2594 -0.1574 0.0141 0.0035 y2.d 0.1290 -0.1118 0.0467 0.0214 y3.d -0.1813 0.0618 0.0085 0.0302 y4.d 0.0270 0.0014 -0.0560 0.0097 y5.d -0.0629 -0.0009 0.0254 0.0065
希望這可以幫助您或其他人。
即使是兩年,這可能會有所幫助。因此,據我所知,blrtest 對每個協整向量都測試了相同的限制。例如,在這裡,它可以用於測試從所有 4 個協整向量中排除常數。
因此,它也不能辨識(因為它對每個向量都有相同的限制)。