Nothing
library(tsDyn)
suppressMessages(library(dplyr))
library(purrr)
library(tidyr)
select <- dplyr::select
suppressWarnings(RNGversion("3.5.3"))
############################
### Load data
############################
path_mod_multi <- system.file("testdata/models_multivariate.rds", package = "tsDyn")
models_multivariate <- readRDS(path_mod_multi)
models_multivariate %>%
mutate(across(where(is.list), class)) %>%
as.data.frame() %>%
head(12)
############################
### VAR
############################
irf_any <- tsDyn:::irf_any
irf_1 <- tsDyn:::irf_1
irf_1.nlVar <- tsDyn:::irf_1.nlVar
## manual comparisons
mod_random_1 <- filter(models_multivariate, lag ==2)$object[[2]]
mod_random_1_vars <- filter(models_multivariate, lag ==2)$object_vars[[2]]
irf_any(mod_random_1, boot = FALSE)$irf[[1]]
irf(mod_random_1, boot = FALSE)$irf[[1]]
irf(mod_random_1_vars, boot = FALSE)$irf[[1]]
irf_any(mod_random_1, boot = FALSE, ortho = FALSE)$irf[[1]]
irf(mod_random_1, boot = FALSE, ortho = FALSE)$irf[[1]]
irf(mod_random_1_vars, boot = FALSE, ortho = FALSE)$irf[[1]]
### irf _1
models_IRF_1 <- models_multivariate %>%
filter(model == "VAR") %>%
mutate(irf = map(object, ~irf_1(.)))
models_IRF_1$irf %>%
bind_rows() %>%
head() %>%
print(digits=3)
### irf_any
# irf.NULL <- function(x) NULL
# irf.ca.jo <- function(x) irf(vec2var(ca.jo))
models_VAR <- models_multivariate %>%
filter(model == "VAR")
## older method
models_IRF_any <- models_multivariate %>%
filter(model == "VAR") %>%
mutate(ortho = list(tibble(ortho =c(TRUE, FALSE)))) %>%
unnest(., ortho) %>%
mutate(irf = map2(object, ortho, ~irf_any(.x, boot = TRUE, runs = 1, seed = 7, ortho = .y)),
irf_vars = map2(object_vars, ortho, ~irf(.x, runs = 1, seed = 7, ortho = .y)),
irf_vec2 = map2(object, ortho, ~irf(.x, boot = FALSE, runs = 1, seed = 7, ortho = .y)))
models_IRF_any %>%
mutate(across(where(is.list), class)) %>%
as.data.frame()
## showquick summary
irf_extract_here <- function(x) {
head(x$irf[[1]], 2) %>%
as.data.frame() %>%
mutate(type = "irf") %>%
rbind(head(x$Upper[[1]], 2) %>%
as.data.frame() %>%
mutate(type = "Upper_CI")) %>%
relocate(type)
}
## show head of irf any
map_dfr(models_IRF_any$irf, irf_extract_here) %>%
as.data.frame() %>%
head(10)%>%
mutate(across(where(is.numeric), ~round(., 6)))
## compare with vars
all.equal(models_IRF_any$irf[[1]]$irf,
models_IRF_any$irf_vars[[1]]$irf)
models_IRF_any$irf[[1]]$irf[[1]]
models_IRF_any$irf_vars[[1]]$irf[[1]]
models_IRF_any$irf_vec2[[1]]$irf[[1]]
comp <- models_IRF_any %>%
mutate(comp_irf_tsD_vars = map2(irf, irf_vars, ~all.equal(.x$irf, .y$irf)),
is_same = map_lgl(comp_irf_tsD_vars, ~isTRUE(.)),
comp_irf_tsDOld_vars = map2(irf_vec2, irf_vars, ~all.equal(.x$irf, .y$irf)),
is_same_tssDvec2 = map_lgl(comp_irf_tsDOld_vars, ~isTRUE(.)),
comp_irf_tsDOld_tsDNew = map2_lgl(irf, irf_vec2, ~all.equal(.x$irf, .y$irf)),
is_same_tsD_2ver = map_lgl(comp_irf_tsDOld_tsDNew, ~isTRUE(.))) %>%
dplyr::select(-starts_with("irf"), -starts_with("comp_irf"), comp_irf_tsDOld_tsDNew)
comp %>%
dplyr::select(-starts_with("object")) %>%
as.data.frame()
############################
### VECM
############################
models_VECM <- models_multivariate %>%
filter(model == "VECM") %>%
mutate(irf = map(object, ~irf_any(., boot = TRUE, runs = 1, seed = 7, ortho = FALSE)))
## show two first of first componment
models_VECM %>%
mutate(irf = map(irf, irf_extract_here)) %>%
dplyr::select(-object, -object_vars) %>%
unnest(irf) %>%
as.data.frame() %>%
mutate(across(where(is.numeric), ~round(., 6)))
## plot 1
plot(models_VECM$irf[[1]])
############################
### TVAR
############################
models_TVAR <- models_multivariate %>%
filter(model == "TVAR")
## test 1
tvar_1 <- models_TVAR$object[[1]]
irf(tvar_1, runs = 2, seed = 123)
## regime specific for TVAR
models_TVAR_irf <- models_TVAR %>%
mutate(irf_L = map(object, ~irf_any(., boot = TRUE, runs = 1, seed = 7, ortho = FALSE, regime = "L")))
## show two first of first componment
models_TVAR_irf %>%
mutate(irf = map(irf_L, irf_extract_here)) %>%
dplyr::select(-object, -object_vars, -irf_L ) %>%
unnest(irf) %>%
as.data.frame() %>%
mutate(across(where(is.numeric), ~round(., 6)))
## plot 1
plot(models_TVAR_irf$irf_L[[1]])
############################
### TVECM
############################
models_TVECM <- models_multivariate %>%
filter(model == "TVECM")
## test 1
tvecm_1 <- models_TVECM$object[[1]]
tsDyn:::irf_1(x=tvecm_1 , n.ahead = 10, cumulative = FALSE, regime = "L", ortho = TRUE)
tsDyn:::irf_1(x=tvecm_1 , n.ahead = 10, cumulative = FALSE, regime = "L", ortho = FALSE)
irf(x=tvecm_1, runs = 2, seed = 123)
## regime specific for TVECM
models_TVECM_irf <- models_TVECM %>%
mutate(irf_L = map(object, ~suppressWarnings(irf_any(., boot = TRUE, runs = 1, seed = 7, ortho = FALSE, regime = "L"))))
## show two first of first componment
models_TVECM_irf %>%
mutate(irf = map(irf_L, irf_extract_here)) %>%
select(-object, -object_vars, -irf_L ) %>%
unnest(irf) %>%
as.data.frame() %>%
mutate(across(where(is.numeric), ~round(., 6)))
## plot 1
plot(models_TVECM_irf$irf_L[[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.