You are on page 1of 3

library(dse)

library(vars)
## A???model 3
Apoly <- array (c(1.0, -0.5,0.3,0.8,
0.2, 0.1,-0.7,-0.2,
0.7,1,0.5,-0.3),
c(3,2,2))
## S e t t i n g c o v a r i a n c e to i d e n t i t y ???ma t r i x 8
B <- diag(2)
## Gen e r a t in g the VAR( 2 ) model 10
svarA <??? ARMA(A = Apoly , B = B)
## S imu l a t i n g 500 o b s e r v a t i o n s
svarsim <??? simulate(svarA , sampleT = 500, rng = list(seed = c(123456)))

## Ob t a in in g the g en e r a t ed s e r i e s
svardat <- matrix(svarsim$output,nrow=500,ncol = 2)
colnames(svardat) <- c("y1","y2")
## Es t ima t i n g the VAR
varest <- VAR(svardat , p=2,type = "none")
## S e t t i n g up ma t r i c e s f o r A???model 20
Amat <- diag(2)
#Amat[ 2, 1] <- NA
Amat[ 1, 2] <- NA
## Es t ima t i n g the SVAR A???t ype by d i r e c t ma x imi s a t i on 24
## o f the log???l i k e l i h o o d 25
args(SVAR)
svar.A <- SVAR(varest , estmethod = "direct",Amat=Amat,hessian = TRUE)

###########################################################
##################### MODEL B ############################
#############################################################

library(dse1)
library(vars)
## B???model 3
Apoly <??? array(c(1.0,-0.5,0.3,0,
0.2, 0.1,0,-0.2,
0.7,1,0.5,-0.3),
c(3,2,2))
## S e t t i n g c o v a r i a n c e to i d e ntity ???matrix
B <- diag(2)
B[2,1] <- -0.8
## Gen e r a t in g the VAR( 2 ) model 11
svarB <- ARMA(A=Apoly , B=B)
## S imu l a t i n g 500 o b s e r v a t i o n s 13
svarsim <??? simulate(svarB , sampleT=500,
rng=list(seed = c(123456)))
svardat <- matrix(svarsim$output,nrow=500,ncol=2)
colnames(svardat) <??? c("y1" , "y2" )
varest <??? VAR(svardat , p=2 , type = "none")
## Es t ima t i n g the SVAR B???t ype by s c o r i n g a l g o r i t hm 19
## S e t t i n g up the r e s t r i c t i o n ma t r i x and v e c t o r 20
## for B???model
Bmat <- diag(2)
Bmat[2,1] <- NA
svar.B <- SVAR(varest, estmethod = "scoring",
Bmat=Bmat , max.iter = 200)
## Imp u l s e r e s p o n s e a n a l y s i s of SVAR A???t ype model
args(vars:::irf.svarest)
irf.svara <- irf(svar.A, impulse= "y1", response = "y2", boot = FALSE)
args(vars:::plot.varirf)
plot(irf.svara)

## FEVD an alysis of SVAR B???t ype model


args(vars:::fevd.svarest)
fevd.svarb <- fevd(svar.B, n.ahead=20)
class(fevd.svarb)
methods(class ="varfevd")
plot(fevd.svarb)

library("vars")
data("Canada")
summary(Canada)
plot(Canada, nc = 2, xlab = "")

adf1 <- summary(ur.df(Canada[, "prod"], type = "trend", lags = 2))


adf1
VARselect(Canada, lag.max = 8, type = "both")

Canada <- Canada[, c("prod", "e", "U", "rw")]


p1ct <- VAR(Canada, p = 1, type = "both")
p1ct

summary(p1ct, equation = "e")


plot(p1ct, names = "e")

###################################

library(lmtest)
set.seed(123456)
e1 <- rnorm (500)
e2 <- rnorm (500)
trd <- 1:500
y1 <- 0.8*trd + cumsum(e1)
y2 <- 0.6*trd + cumsum(e2)
sr.reg <- lm(y1 ~ y2)
sr.dw <- dwtest(sr.reg)$statistic

#################################

set.seed(123456)
e1 <- rnorm (100)
e2 <- rnorm (100)
y1 <- cumsum(e1)
y2 <- 0.6*y1 + e2
lr.reg <- lm(y2 ~ y1)
error <- residuals(lr.reg)
error.lagged <- error[-c(99,100)]
dy1 <- diff(y1)
dy2 <- diff(y2)
diff.dat <- data.frame(embed(cbind(dy1,dy2),2))
colnames(diff.dat) <- c('dy1' , 'dy2','dy1.1','dy2.1')
ecm.reg <- lm( dy2 ~ error.lagged + dy1.1 + dy2.1, data=diff.dat )

You might also like