Nothing
library(tsDyn)
data(zeroyld)
data(barry)
## Test a few VECM models
vecm_OLS_l1_co <-VECM(barry, lag=1)
vecm_OLS_l3_co <-VECM(barry, lag=3, include="const")
vecm_OLS_l3_co_betaGiven<-VECM(barry, lag=3, include="const", beta=c(0.1, -0.05))
vecm_OLS_l1_tr <-VECM(barry, lag=1, include="trend")
vecm_OLS_l1_bo <-VECM(barry, lag=1, include="both")
vecm_OLS_l1_no <-VECM(barry, lag=1, include="none")
vecm_OLS_l1_coAsExo <-VECM(barry, lag=1, include="none", exogen=rep(1, nrow(barry)))
vecm_OLS_l3_coAsExo <-VECM(barry, lag=3, include="none", exogen=rep(1, nrow(barry)))
vecm_OLS_l0_co <-VECM(barry, lag=0)
vecm_OLS_l0_tr <-VECM(barry, lag=0, include="trend")
vecm_ML_l0_co <-VECM(barry, lag=0, include="const", estim="ML")
vecm_ML_l0_tr <-VECM(barry, lag=0, include="trend", estim="ML")
vecm_ML_l0_bo <-VECM(barry, lag=0, include="both", estim="ML")
vecm_ML_l0_no <-VECM(barry, lag=0, include="none", estim="ML")
vecm_ML_l0_LRco <-VECM(barry, lag=0, LRinclude="const", estim="ML")
vecm_ML_l0_LRtr <-VECM(barry, lag=0, LRinclude="trend", estim="ML")
vecm_OLS_l1_LRco <-VECM(barry, lag=1, LRinclude="const")
vecm_OLS_l1_LRtr <-VECM(barry, lag=1, LRinclude="trend")
vecm_OLS_l1_LRtr_noCo <-VECM(barry, lag=1, LRinclude="trend", include="none")
vecm_OLS_l1_LRbo <-VECM(barry, lag=1, LRinclude="both")
vecm_ML_l1_co <-VECM(barry, lag=1, estim="ML")
vecm_ML_l3_co <-VECM(barry, lag=3, include="const", estim="ML")
vecm_ML_l3_co_betaGiven<-VECM(barry, lag=3, include="const", beta=c(-0.035,0.04), estim="ML")
vecm_ML_l1_tr <-VECM(barry, lag=1, include="trend", estim="ML")
vecm_ML_l1_bo <-VECM(barry, lag=1, include="both", estim="ML")
vecm_ML_l1_no <-VECM(barry, lag=1, include="none", estim="ML")
vecm_ML_l1_coAsExo <-VECM(barry, lag=1, include="none", exogen=rep(1, nrow(barry)), estim="ML")
vecm_ML_l3_coAsExo <-VECM(barry, lag=3, include="none", exogen=rep(1, nrow(barry)), estim="ML")
set.seed(1234)
exoVar <- rnorm(n=nrow(barry))
vecm_ML_l1_LRco <-VECM(barry, lag=1, LRinclude="const", estim="ML")
vecm_ML_l1_LRc_exo <-VECM(barry, lag=1, LRinclude="const", estim="ML", exogen=exoVar)
vecm_ML_l1_LRtr <-VECM(barry, lag=1, LRinclude="trend", estim="ML")
vecm_ML_l1_LRtr_exo <-VECM(barry, lag=1, LRinclude="trend", estim="ML", exogen=exoVar)
vecm_ML_l1_LRtr_noCo <-VECM(barry, lag=1, LRinclude="trend", include="none", estim="ML")
vecm_ML_l1_LRbo <-VECM(barry, lag=1, LRinclude="both", estim="ML")
vecm_ML_l1_LRbo_exo <-VECM(barry, lag=1, LRinclude="both", estim="ML", exogen=exoVar)
vecm_all <- list(
vecm_OLS_l1_co=vecm_OLS_l1_co,
vecm_OLS_l3_co=vecm_OLS_l3_co,
vecm_OLS_l3_co_betaGiven=vecm_OLS_l3_co_betaGiven,
vecm_OLS_l1_tr=vecm_OLS_l1_tr,
vecm_OLS_l1_bo=vecm_OLS_l1_bo,
vecm_OLS_l1_no=vecm_OLS_l1_no,
vecm_OLS_l1_coAsExo=vecm_OLS_l1_coAsExo,
vecm_OLS_l3_coAsExo=vecm_OLS_l3_coAsExo,
vecm_OLS_l1_LRco=vecm_OLS_l1_LRco,
vecm_OLS_l1_LRtr=vecm_OLS_l1_LRtr,
vecm_OLS_l1_LRtr_noCo=vecm_OLS_l1_LRtr_noCo,
vecm_OLS_l1_LRbo=vecm_OLS_l1_LRbo,
vecm_OLS_l0_co=vecm_OLS_l0_co,
vecm_OLS_l0_tr=vecm_OLS_l0_tr,
vecm_ML_l0_co=vecm_ML_l0_co,
vecm_ML_l0_tr=vecm_ML_l0_tr,
vecm_ML_l0_bo=vecm_ML_l0_bo,
vecm_ML_l0_no=vecm_ML_l0_no,
vecm_ML_l0_LRco=vecm_ML_l0_LRco,
vecm_ML_l0_LRtr=vecm_ML_l0_LRtr,
vecm_ML_l1_co=vecm_ML_l1_co,
vecm_ML_l3_co=vecm_ML_l3_co,
vecm_ML_l1_tr=vecm_ML_l1_tr,
vecm_ML_l1_bo=vecm_ML_l1_bo,
vecm_ML_l1_no=vecm_ML_l1_no,
vecm_ML_l1_coAsExo=vecm_ML_l1_coAsExo,
vecm_ML_l3_coAsExo=vecm_ML_l3_coAsExo,
vecm_ML_l1_LRco=vecm_ML_l1_LRco,
vecm_ML_l1_LRc_exo=vecm_ML_l1_LRc_exo,
vecm_ML_l1_LRtr=vecm_ML_l1_LRtr,
vecm_ML_l1_LRtr_exo=vecm_ML_l1_LRtr_exo,
vecm_ML_l1_LRtr_noCo=vecm_ML_l1_LRtr_noCo,
vecm_ML_l1_LRbo=vecm_ML_l1_LRbo,
vecm_ML_l1_LRbo_exo=vecm_ML_l1_LRbo_exo)
vecm_ML <- vecm_all[grep("ML", names(vecm_all))]
vecm_no_l0 <- vecm_all[!names(vecm_all)%in%grep("l0", names(vecm_all), value=TRUE)]
lapply(vecm_all, print)
lapply(vecm_all, summary)
lapply(vecm_all, function(x) head(residuals(x), 3))
lapply(vecm_all, function(x) head(fitted(x), 3))
lapply(vecm_no_l0, function(x) head(fitted(x, level="original"), 3))
sapply(vecm_all, deviance)
## logLik
sapply(vecm_all, logLik)
sapply(vecm_ML, logLik, r=0)
sapply(vecm_ML, logLik, r=1)
sapply(vecm_ML, logLik, r=2)
## AIC/BIC
sapply(vecm_all, AIC)
sapply(vecm_ML, AIC, r=0)
sapply(vecm_ML, AIC, r=1)
sapply(vecm_ML, AIC, r=2)
sapply(vecm_ML, AIC, r=0, fitMeasure="LL")
sapply(vecm_ML, AIC, r=1, fitMeasure="LL")
sapply(vecm_ML, AIC, r=2, fitMeasure="LL")
sapply(vecm_all, BIC)
sapply(vecm_ML, BIC, r=0)
sapply(vecm_ML, BIC, r=0, fitMeasure="LL")
## coint
sapply(vecm_all, function(x) x$model.specific$beta)
### VARrep
lapply(vecm_all, function(x) round(VARrep(x),9))
### fevd
vecm_all_no_l0 <- vecm_all[-grep("l0", names(vecm_all))] ## does not work for these models
lapply(vecm_all_no_l0, function(x) sapply(fevd(x, n.ahead=2), head))
### irf
vecm_irf <- vecm_all[-grep("l1_no|exo|Exo|l0|LR", names(vecm_all))] ## does not work for these models
lapply(vecm_irf, function(x) sapply(irf(x, runs=1)$irf,head,2))
## predict
vecm_all_pred <- vecm_all[-grep("_bo|_no|_noCo|LRbo|coAsExo|exo", names(vecm_all))]
lapply(vecm_all_pred, predict, n.ahead=2)
lapply(vecm_all_pred, function(x) sapply(tsDyn:::predictOld.VECM(x, n.ahead=2)$fcst, function(y) y[,"fcst"]))
lapply(vecm_all_no_l0, function(x) predict_rolling(x,nroll=2)$pred)
lapply(vecm_all_no_l0, function(x) predict_rolling(x,nroll=2, refit.every=1)$pred)
## VECM boot
options(warn=-1)
sapply(vecm_all, function(x) try(tsDyn:::TVECM.boot.check(x), silent=TRUE))
options(warn=0)
vecm_all_noExo_noLRinc <- vecm_all[-grep("LR|exo|Exo|l0", names(vecm_all))]
sapply(vecm_all_noExo_noLRinc, tsDyn:::TVECM.boot.check)
### CoefA, coefB, coefPI
lapply(vecm_all, coefB)
lapply(vecm_all, coefA)
options(digits=6)
lapply(vecm_all, coefPI)
options(digits=7)
### rank test
vecm_ML_rtest <- vecm_ML[-grep("vecm_ML_l1_LRtr_noCo|vecm_ML_l1_LRbo", names(vecm_ML))] ## does not work for these models
rank.tests <- lapply(vecm_ML_rtest , rank.test)
rank.tests_rnull1 <- lapply(vecm_ML_rtest , rank.test, r_null=1)
rank.tests_tr <- lapply(vecm_ML_rtest , rank.test, type="trace")
rank.tests_tr_rnull1 <- lapply(vecm_ML_rtest , rank.test, r_null=1, type="trace")
rank.tests.all <- c(rank.tests , rank.tests_rnull1, rank.tests_tr,rank.tests_tr_rnull1 )
lapply(rank.tests.all, print)
lapply(rank.tests.all, summary)
### rank select
data(barry)
r_sel <- rank.select(barry)
r_sel_tre <- rank.select(barry, include="trend")
r_sel_none <- rank.select(barry, include="none")
r_sel_both <- rank.select(barry, include="both")
r_sel$LLs
r_sel$AICs
r_sel_tre$LLs
r_sel_tre$AICs
r_sel_none$LLs
r_sel_none$AICs
r_sel_both$LLs
r_sel_both$AICs
#### exogen: check equalities
check.same <- function(x1, x2) {
co_x2 <- coef(x2)
t1 <- isTRUE(all.equal(coef(x1), co_x2[,c(1:x2$model.specific$r, ncol(co_x2),(x2$model.specific$r+1):(ncol(co_x2)-1))], check.attributes=FALSE))
t2 <- isTRUE(all.equal(AIC(x1), AIC(x2), check.attributes=FALSE))
t3 <- isTRUE(all.equal(BIC(x1), BIC(x2), check.attributes=FALSE))
if(x1$model.specific$estim=="ML"){
t5 <- isTRUE(all.equal(BIC(x1,fitMeasure="LL"), BIC(x2,fitMeasure="LL"), check.attributes=FALSE))
t6 <- isTRUE(all.equal(BIC(x1,fitMeasure="LL", r=2), BIC(x2,fitMeasure="LL",r=2), check.attributes=FALSE))
t7 <- isTRUE(all.equal(logLik(x1,fitMeasure="LL", r=2), logLik(x2,fitMeasure="LL",r=2), check.attributes=FALSE))
t8 <- isTRUE(all.equal(rank.test(x1)$res_df[,c("trace", "eigen")], rank.test(x2)$res_df[,c("trace", "eigen")], check.attributes=FALSE))
} else {
t5 <- t6 <- t7 <- t8 <- NULL
}
t4 <- isTRUE(all.equal(residuals(x1), residuals(x2), check.attributes=FALSE))
c(t1, t1, t3,t4, t5, t6, t7, t8)
}
check.same(x1=vecm_OLS_l1_co, x2=vecm_OLS_l1_coAsExo)
check.same(x1=vecm_OLS_l3_co, x2=vecm_OLS_l3_coAsExo)
check.same(x1=vecm_ML_l1_co, x2=vecm_ML_l1_coAsExo)
check.same(x1=vecm_ML_l3_co, x2=vecm_ML_l3_coAsExo)
###################################
####### predict_rolling check
###################################
n_ca<- nrow(barry)
as.M <- function(x) as.matrix(x)
#### VECM No refit lag=1
mod_vecm_l1_full <- VECM(barry, lag=1)
mod_vecm_l1_sub <- VECM(tsDyn:::myHead(barry,n_ca-10), lag=1)
mod_vecm_l1_sub_ref5 <- VECM(tsDyn:::myHead(barry,n_ca-5), lag=1)
pred_l3_vecm_roll_12<-predict_rolling(object=mod_vecm_l1_full, nroll=10, n.ahead=1:2)
pred_l3_vecm_0_12_nd <- predict(mod_vecm_l1_sub, n.ahead=2, newdata=barry[n_ca-c(12:11),,drop=FALSE])
pred_l3_vecm_1_12_nd_ref5 <- predict(mod_vecm_l1_sub_ref5, n.ahead=2, newdata=barry[n_ca-c(6:5),,drop=FALSE])
pred_l3_vecm_0_12_nd_ref5 <- predict(mod_vecm_l1_sub_ref5, n.ahead=2, newdata=barry[n_ca-c(7:6),,drop=FALSE])
pred_l3_vecm_1_12_nd <- predict(mod_vecm_l1_sub, n.ahead=2, newdata=barry[n_ca-c(11:10),,drop=FALSE])
pred_l3_vecm_2_12_nd <- predict(mod_vecm_l1_sub, n.ahead=2, newdata=barry[n_ca-c(10:9),,drop=FALSE])
pred_l3_vecm_1_12 <- predict(mod_vecm_l1_sub, n.ahead=2)
all.equal(pred_l3_vecm_1_12_nd, pred_l3_vecm_1_12) ## minor: consistency in predict with/withotut newdata=dataset
pred_l3_vecm_nd <- rbind(pred_l3_vecm_0_12_nd, pred_l3_vecm_1_12_nd, pred_l3_vecm_2_12_nd)
all.equal(pred_l3_vecm_nd[c(3,5),], as.M(pred_l3_vecm_roll_12$pred[1:2,1:3]), check.attributes=FALSE) ## check 1-ahead
all.equal(pred_l3_vecm_nd[c(2,4),], as.M(pred_l3_vecm_roll_12$pred[11:12,1:3]), check.attributes=FALSE) ## check 2 ahead
#### VECM No refit lag=3
mod_var_l3_vecm_full <- VECM(barry, lag=3)
mod_var_l3_vecm_sub <- VECM(tsDyn:::myHead(barry,n_ca-10), lag=3)
mod_var_l3_vecm_sub_ref5 <- VECM(tsDyn:::myHead(barry,n_ca-6), lag=3)
pred_l3_vecm_roll_12<-predict_rolling(object=mod_var_l3_vecm_full, nroll=10, n.ahead=1:2)
pred_l3_vecm_0_12_nd <- predict(mod_var_l3_vecm_sub, n.ahead=2, newdata=barry[n_ca-c(14:11),,drop=FALSE])
pred_l3_vecm_1_12_nd_ref5 <- predict(mod_var_l3_vecm_sub_ref5, n.ahead=2, newdata=barry[n_ca-c(6:9),,drop=FALSE])
pred_l3_vecm_0_12_nd_ref5 <- predict(mod_var_l3_vecm_sub_ref5, n.ahead=2, newdata=barry[n_ca-c(7:10),,drop=FALSE])
pred_l3_vecm_1_12_nd <- predict(mod_var_l3_vecm_sub, n.ahead=2, newdata=barry[n_ca-c(13:10),,drop=FALSE])
pred_l3_vecm_2_12_nd <- predict(mod_var_l3_vecm_sub, n.ahead=2, newdata=barry[n_ca-c(12:9),,drop=FALSE])
pred_l3_vecm_1_12 <- predict(mod_var_l3_vecm_sub, n.ahead=2)
all.equal(pred_l3_vecm_1_12_nd, pred_l3_vecm_1_12) ## minor: consistency in predict with/withotut newdata=dataset
pred_l3_vecm_nd <- rbind(pred_l3_vecm_0_12_nd, pred_l3_vecm_1_12_nd, pred_l3_vecm_2_12_nd)
all.equal(pred_l3_vecm_nd[c(3,5),], as.M(pred_l3_vecm_roll_12$pred[1:2,1:3]), check.attributes=FALSE) ## check 1-ahead
all.equal(pred_l3_vecm_nd[c(2,4),], as.M(pred_l3_vecm_roll_12$pred[11:12,1:3]), check.attributes=FALSE) ## check 2 ahead
### VECM Refit lag=3
pred_l3_vecm_roll_12_ref<-predict_rolling(object=mod_var_l3_vecm_full, nroll=10, n.ahead=1:2, refit=5)
pred_l3_vecm_roll_12_ref_b<-predict_rolling(object=mod_var_l3_vecm_full, nroll=10, n.ahead=2, refit=5)
pred_l3_vecm_0_12_nd_ref5 <- predict(mod_var_l3_vecm_sub_ref5, n.ahead=2, newdata=barry[n_ca-c(9:6),,drop=FALSE])
pred_l3_vecm_1_12_nd_ref5 <- predict(mod_var_l3_vecm_sub_ref5, n.ahead=2, newdata=barry[n_ca-c(8:5),,drop=FALSE])
pred_l3_vecm_nd_ref5 <- rbind(pred_l3_vecm_0_12_nd_ref5, pred_l3_vecm_1_12_nd_ref5)
all.equal(pred_l3_vecm_nd_ref5[c(2,4),], as.M(pred_l3_vecm_roll_12_ref$pred[16:17,1:3]), check.attributes=FALSE) ## check refited2 ahead
## ECT_plot
out <- lapply(vecm_all, plot_ECT)
sapply(out, head, 1)
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.