4 The Cointegrated VAR
This chapter contains the replication of the material of Chapter 7 of Juselius (2006).
4.1 Estimation
Load the function ca_jo_jus06_fun()
from GitHub.
source("https://raw.githubusercontent.com/mmoessler/juselius-2006/main/R/ca_jo_jus06_fun.R")
Call the function ca_jo_jus06_fun()
for the Danish data.
Include dummies Dt754
, Dp764
and Dp831
unrestricted.
Include dummy Ds831
restricted to the cointegrating relationship.
Estimation with trend in the cointegrating relationship, i.e., call ca_jo_jus06_fun(()
with ecdet = c("trend")
.
# with trend in cir, with shift dummy and with Ds831 in cir
.01 <- ca_jo_jus06_fun(x = data[,c("Lm3rC","Lyr","Dpy","Rm","Rb")], type = c("trace"), ecdet = c("trend"), K = 2, spec = c("transitory"), data = data) ca.jo.res
Estimation without trend in the cointegrating relationship, i.e., call ca_jo_jus06_fun(()
with ecdet = c("none")
.
# without trend in cir, with shift dummy and with Ds831 in cir
.02 <- ca_jo_jus06_fun(x = data[,c("Lm3rC","Lyr","Dpy","Rm","Rb")], type = c("trace"), ecdet = c("none"), K = 2, spec = c("transitory"), data = data) ca.jo.res
Note, the function ca_jo_jus06_fun()
is based on the function ca.jo()
from the library urca
(see also Pfaff (2008)). The dummy variables are added inside the function, i.e., “hard.” Check the code on GitHub (mmoessler/juselius-2006/main/R/ca_jo_jus06_fun.R
) for more information.
4.2 Results
Lambdas \(\widehat{\lambda}_i\) (see Table 7.1 of Juselius (2006))
round(Re(ca.jo.res.01$lambda), 2)
## [1] 0.35 0.23 0.20 0.09 0.06 0.00 0.00
Non-nomralized eigenvectors \(\widehat{v}_i\) (see Table 7.1 of Juselius (2006))
round(Re(ca.jo.res.01$Vorg), 2)
## Lm3rC.l1 Lyr.l1 Dpy.l1 Rm.l1 Rb.l1 Ds831 trend.l1
## Lm3rC.l1 12.66 -18.44 -1.90 8.86 1.07 -6.66 -5.64
## Lyr.l1 -6.68 18.90 12.48 14.18 18.32 3.79 -1.49
## Dpy.l1 193.80 63.59 8.89 7.50 -2.54 0.35 -6.11
## Rm.l1 -57.07 156.97 499.29 100.14 -148.22 -17.94 -116.62
## Rb.l1 110.00 -147.57 -310.13 211.44 60.12 -38.92 83.95
## Ds831 -0.35 4.50 -2.84 -0.07 1.00 -2.39 -0.93
## trend.l1 0.01 0.01 -0.02 -0.03 -0.10 0.05 0.04
Normalized eigenvectors \(\widehat{\beta}_i\) (see Table 7.1 of Juselius (2006))
.01 <- cbind(cbind(ca.jo.res.01$Vorg[,1]/ca.jo.res.01$Vorg[3,1]),
Vcbind(ca.jo.res.01$Vorg[,2]/ca.jo.res.01$Vorg[1,2]),
cbind(ca.jo.res.01$Vorg[,3]/ca.jo.res.01$Vorg[4,3]),
cbind(ca.jo.res.01$Vorg[,4]/ca.jo.res.01$Vorg[2,4]),
cbind(ca.jo.res.01$Vorg[,5]/ca.jo.res.01$Vorg[5,5]),
cbind(ca.jo.res.01$Vorg[,6]/ca.jo.res.01$Vorg[1,6]),
cbind(ca.jo.res.01$Vorg[,7]/ca.jo.res.01$Vorg[1,7]))
round(V.01, 2)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## Lm3rC.l1 0.07 1.00 0.00 0.62 0.02 1.00 1.00
## Lyr.l1 -0.03 -1.02 0.02 1.00 0.30 -0.57 0.26
## Dpy.l1 1.00 -3.45 0.02 0.53 -0.04 -0.05 1.08
## Rm.l1 -0.29 -8.51 1.00 7.06 -2.47 2.69 20.68
## Rb.l1 0.57 8.00 -0.62 14.91 1.00 5.84 -14.88
## Ds831 0.00 -0.24 -0.01 0.00 0.02 0.36 0.16
## trend.l1 0.00 0.00 0.00 0.00 0.00 -0.01 -0.01
Normalized weights \(\widehat{\alpha}_i\) (see Table 7.1 of Juselius (2006))
.01 <- ca.jo.res.01$S0K %*% V.01 %*% solve(t(V.01) %*% ca.jo.res.01$SKK %*% V.01)
W
round(W.01, 2)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,] -1.05 -0.15 1.18 -0.05 -0.15 0 0
## [2,] -0.06 0.05 -1.54 -0.05 -0.05 0 0
## [3,] -0.71 0.04 -0.30 0.01 0.07 0 0
## [4,] 0.02 0.00 -0.10 0.00 0.01 0 0
## [5,] 0.02 0.00 0.16 0.00 0.01 0 0
Combined effects: \(\widehat{\Pi}\) (see Table 7.1 of Juselius (2006))
round(ca.jo.res.01$PI, 2)
## Lm3rC.l1 Lyr.l1 Dpy.l1 Rm.l1 Rb.l1 Ds831 trend.l1
## Lm3rC.d -0.26 0.13 -0.51 2.86 -3.39 0.03 0
## Lyr.d 0.02 -0.15 -0.28 -2.13 0.59 0.00 0
## Dpy.d 0.00 0.01 -0.84 -0.52 0.27 0.00 0
## Rm.d 0.00 0.00 0.02 -0.11 0.05 0.00 0
## Rb.d 0.00 0.00 0.01 0.08 -0.10 0.00 0