Nothing
library(tsDyn)
library(mnormt)
suppressWarnings(RNGversion("3.5.3"))
TVECM.boot.check <- tsDyn:::TVECM.boot.check
options(useFancyQuotes=FALSE) # useful for all.equal comparison
################################################################
######### From man file:
################################################################
#see that:
a<-matrix(c(-0.2, 0.2), ncol=1)
b<-matrix(c(1,-1), nrow=1)
a%*%b
set.seed(123)
innov<-rmnorm(100, varcov=diag(2))
vecm1<-TVECM.sim(B=rbind(c(-0.2, 0,0), c(0.2, 0,0)), nthresh=0, beta=1,n=100, lag=1,include="none", innov=innov)
ECT<-vecm1[,1]-vecm1[,2]
ECT[1:5]
#add an intercept as in panel B
B2 <- rbind(c(-0.2, 0.1,0,0), c(0.2,0.4, 0,0))
b<- TVECM.sim(B=B2, nthresh=0, n=100,beta=1, lag=1,include="const", innov=innov, show.parMat=TRUE)
b_2 <- VECM.sim(B=B2, n=100,beta=1, lag=1,include="const", innov=innov, show.parMat=TRUE)
b[1:5,]
all.equal(b, b_2)
## other ways to input beta:
b_beta_vec <- TVECM.sim(B=B2, nthresh=0, n=100,beta=c(1,-1), lag=1,include="const", innov=innov, show.parMat=TRUE)
b_beta_vec_2 <- VECM.sim(B=B2, n=100,beta=c(1,-1), lag=1,include="const", innov=innov, show.parMat=TRUE)
b_beta_vec[1:5,]
all.equal(b,b_beta_vec)
all.equal(b_beta_vec, b_beta_vec_2)
beta_mat <- matrix(c(1,-1), ncol=1)
b_beta_mat <- TVECM.sim(B=B2, nthresh=0, n=100,beta=beta_mat, lag=1,include="const", innov=innov, show.parMat=TRUE)
b_beta_mat[1:5,]
all.equal(b,b_beta_mat)
########################
######## TVECM
########################
##Bootstrap a TVECM with 1 threshold (two regimes)
data(zeroyld)
dat<-zeroyld
TVECMobject<-TVECM(dat, nthresh=1, lag=1, ngridBeta=20, th1=list(exact=-1.195), plot=FALSE)
tv_1_boot <-TVECM.boot(TVECMobject, seed=123, show.parMat=TRUE)
head(tv_1_boot)
##Check the bootstrap
TVECM.boot.check(TVECMobject)
## check correspondence bootstrap/simul:
tv_1_sim <-TVECM.sim(B=tsDyn:::coefMat.nlVar(TVECMobject),beta=TVECMobject$model.specific$beta,
Thresh=getTh(TVECMobject), show.parMat=TRUE, innov=matrix(0,200,2))
head(tv_1_boot)
tv_1_sim <-TVECM.sim(B=tsDyn:::coefMat.nlVar(TVECMobject),
beta=TVECMobject$model.specific$beta,
Thresh=getTh(TVECMobject), show.parMat=TRUE)
head(tv_1_boot)
##Bootstrap a TVAR with two threshold (three regimes)
tv_2_const <- TVECM(dat, lag=1, nthresh=2, plot=FALSE, trace=FALSE, th1=list(exact=-1.312),
th2=list(exact=0.774))
tv_2_none <- TVECM(dat, lag=1, nthresh=2, plot=FALSE, trace=FALSE, th1=list(exact=-1.312),
th2=list(exact=0.774), include="none")
tv_2_trend <- TVECM(dat, lag=1, nthresh=2, plot=FALSE, trace=FALSE, th1=list(exact=-1.312),
th2=list(exact=0.774), include="trend")
tv_2_both <- TVECM(dat, lag=1, nthresh=2, plot=FALSE, trace=FALSE, th1=list(exact=-1.312),
th2=list(exact=0.774), ngridBeta=5, include="both")
tv_2_const_common <- TVECM(dat, lag=1, nthresh=2, plot=FALSE, trace=FALSE, th1=list(exact=-1.451),
th2=list(exact=0.754), include="const", common="only_ECT")
tv_2_const_l2 <- TVECM(dat, nthresh=2, lag=2, ngridBeta=5, plot=FALSE, include="none",
th1=list(exact=-1.312),th2=list(exact=0.774), trace=FALSE)
TVECM.boot(tv_2_const, show.parMat=TRUE, seed=456)[1:5,]
TVECM.boot(tv_2_none, show.parMat=TRUE, seed=456)[1:5,]
TVECM.boot(tv_2_trend,show.parMat=TRUE, seed=456)[1:5,]
TVECM.boot(tv_2_both, show.parMat=TRUE, seed=456)[1:5,]
try(TVECM.boot(tv_2_const_common, show.parMat=TRUE, seed=456)[1:5,], silent=TRUE)
TVECM.boot.check(tv_2_const)
TVECM.boot.check(tv_2_none)
TVECM.boot.check(tv_2_const_l2)
TVECM.boot.check(tv_2_both)
## does not work:
TVECM.boot.check(tv_2_trend)
###############
#### p>2
###############
data(barry)
ve_r1_l1 <- VECM(barry, lag=1)
ve_r1_l3 <- VECM(barry, lag=3)
ve_r2_l3 <- VECM(barry, lag=3, estim="ML", r=2)
TVECM.boot.check(ve_r1_l1)
TVECM.boot.check(ve_r1_l3)
TVECM.boot.check(ve_r2_l3)
VECM.boot(ve_r1_l1, show.parMat=TRUE, seed=234)[1:5,]
VECM.boot(ve_r1_l3, show.parMat=TRUE, seed=234)[1:5,]
VECM.boot(ve_r2_l3, show.parMat=TRUE, seed=234)[1:5,]
################################################################
######### Check error message when matrix badly specified:
################################################################
B <- matrix(rnorm(14), byrow=TRUE,ncol=7)
## 0 thresh
try(a<-TVECM.sim(B=B, beta=1, nthresh=0, n=100, lag=1,show.parMat=TRUE, include="none"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=0, n=100, lag=1,show.parMat=TRUE, include="const"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=0, n=100, lag=1,show.parMat=TRUE, include="both"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=0, n=100, lag=1,show.parMat=TRUE, include="trend"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=0, n=100, lag=2,show.parMat=TRUE, include="none"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=0, n=100, lag=2,show.parMat=TRUE, include="const"))
## 1 thresh
try(a<-TVECM.sim(B=B, beta=1, nthresh=1, Thresh=0, n=100, lag=1,show.parMat=TRUE, include="none"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=1, Thresh=0, n=100, lag=1,show.parMat=TRUE, include="const"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=1, Thresh=0, n=100, lag=1,show.parMat=TRUE, include="both"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=1, Thresh=0, n=100, lag=1,show.parMat=TRUE, include="trend"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=1, Thresh=0, n=100, lag=2,show.parMat=TRUE, include="const"))
## 2 thresh
try(a<-TVECM.sim(B=B, beta=1, nthresh=2, Thresh=0, n=100, lag=1,show.parMat=TRUE, include="none"))
try(a<-TVECM.sim(B=B, beta=1, nthresh=2, Thresh=0, n=100, lag=2,show.parMat=TRUE, include="const"))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.