# Load data
data_set_df <- interest_rules_var_data
# # # Create list for input
# specs <- list()
# Specify inputs
lags_endog_lin <- NaN
lags_criterion <- 'AIC'
max_lags <- 2L
trend <- 0L
shock_type <- 1L
confint <- 1.96
hor <- 12L
test_that("Test whether data is a data.frame", {
data_set_df <- as.matrix(data_set_df)
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'The data has to be a data.frame().', fixed = TRUE)
})
test_that("Test whether trend is given", {
trend <- NULL
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'Please specify whether and which type of trend to include.', fixed = TRUE)
})
test_that("Test whether shock_type is given", {
shock_type <- NULL
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'Please specify which type of shock to use.', fixed = TRUE)
})
test_that("Test whether 'confint' is given", {
confint <- NULL
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'Please specify a value for the width of the confidence bands.', fixed = TRUE)
})
test_that("Test whether number of horizons is given", {
hor <- NULL
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'Please specify the number of horizons.', fixed = TRUE)
})
test_that("Test whether wrong lag length is given", {
lags_criterion <- 'AICCd'
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'Possible lag length criteria are AICc, AIC or BIC or NaN if lag length is specified.', fixed = TRUE)
} )
test_that("Test whether lag criterion AND fixed number of lags are given", {
lags_endog_lin <- 1
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'You can not provide a lag criterion (AICc, AIC or BIC) and a fixed number of lags.', fixed = TRUE)
} )
test_that("Test whether lag criterion AND maximum number of lags are given", {
max_lags <- NaN
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'Please provide a maximum number of lags for the lag length criterion.', fixed = TRUE)
} )
test_that("Test whether values for horizons are correct", {
hor <- -1
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'The number of horizons has to be an integer and > 0.', fixed = TRUE)
} )
test_that("Test whether lags are integers", {
lags_endog_lin <- 1.5
lags_criterion <- NaN
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'The numbers of lags have to be a positive integer.', fixed = TRUE)
} )
test_that("Test whether trend is correctly specified", {
trend <- 12
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'For trend please enter 0 = no trend, 1 = trend, 2 = trend and quadratic trend.', fixed = TRUE)
} )
test_that("Test shock type is correctly specified", {
shock_type <- 12
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'The shock_type has to be 0 = standard deviation shock or 1 = unit shock.', fixed = TRUE)
} )
test_that("Test whether width of confidence bands is correctly specified", {
confint <- -1
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'The width of the confidence bands has to be >=0.', fixed = TRUE)
} )
test_that("Test whether maximum lag length is given when no criterion is given", {
lags_endog_lin <- 3
lags_criterion <- NaN
max_lags <- 3
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'The maximum number of lags is only used if you provide a lag length criterion.', fixed = TRUE)
} )
test_that("Test whether no lag length criterion and number of lags are given", {
lags_endog_lin <- NaN
lags_criterion <- NaN
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor),
'You have to at least provide a lag criterion (AICc, AIC or BIC) or a fixed number of lags.', fixed = TRUE)
} )
test_that("Test whether exogenous data is a data.frame", {
exog_data <- rnorm(dim(data_set_df)[1])
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor,
exog_data = exog_data,
lags_exog = 4),
'Exogenous data has to be a data.frame.', fixed = TRUE)
} )
test_that("Test whether exogenous data is a data.frame", {
exog_data <- rnorm(dim(data_set_df)[1])
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor,
exog_data = exog_data,
lags_exog = 4),
'Exogenous data has to be a data.frame.', fixed = TRUE)
} )
test_that("Test whether lag length criterion is given for exogenous data.", {
endog_data <- data_set_df
exog_data <- data_set_df[, 1]
testthat::expect_error(lp_lin(endog_data,
lags_endog_lin = lags_endog_lin,
lags_criterion = lags_criterion,
max_lags = max_lags,
trend = trend,
shock_type = shock_type,
confint = confint,
hor = hor,
exog_data = exog_data,
lags_exog = NULL),
'Please provide a lag length for the exogenous data.', fixed = TRUE)
} )
test_that("Test whether results from lp_lin are in region of results from Jordà (2005)", {
# Load data set
data_set_df <- interest_rules_var_data
results_lin <- lp_lin(data_set_df,
lags_endog_lin = 4L,
lags_criterion = NaN,
max_lags = NaN,
trend = 0L,
shock_type = 0L,
confint = 1.96,
hor = 24L,
num_cores = 1)
# Save results
results_mean_2 <- results_lin$irf_lin_mean[1,2,1]
results_low_2 <- results_lin$irf_lin_mean[1,2,1]
results_up <- results_lin$irf_lin_mean[1,2,1]
# Results from Jordà (2005)
jorda_results_mean_2 <- 0.9 # Approximation from figure 5 in Jordà (2005) plot, p.176
jorda_results_low_2 <- 0.8 # Approximation from figure 5 in Jordà (2005) plot, p.176
jorda_results_up_2 <- 1 # Approximation from figure 5 in Jordà (2005) plot, p.176
expect_equal(results_mean_2, jorda_results_mean_2, tolerance =5e-2)
} )
test_that("Test that prewhitening runs without error", {
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = 4L,
lags_criterion = NaN,
max_lags = NaN,
trend = 0L,
shock_type = 0L,
confint = 1.96,
hor = 24L,
nw_prewhite = T,
num_cores = 1),
NA)
} )
test_that("Test that adjustment to covariance runs without error", {
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = 4L,
lags_criterion = NaN,
max_lags = NaN,
trend = 0L,
shock_type = 0L,
confint = 1.96,
hor = 24L,
nw_prewhite = T,
adjust_se = T,
num_cores = 1),
NA)
} )
test_that("Test that estimating non-robust standard errors runs without error", {
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = 4L,
lags_criterion = NaN,
max_lags = NaN,
trend = 0L,
shock_type = 0L,
confint = 1.96,
hor = 24L,
nw_prewhite = T,
adjust_se = T,
num_cores = 1),
NA)
} )
test_that("Test that estimating non-robust standard errors runs without error", {
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = 4L,
lags_criterion = NaN,
max_lags = NaN,
trend = 0L,
shock_type = 0L,
confint = 1.96,
hor = 24L,
nw_prewhite = F,
adjust_se = T,
num_cores = 1),
NA)
} )
test_that("Test that running with AIC returns no error", {
testthat::expect_error(lp_lin(data_set_df,
lags_endog_lin = NaN,
lags_criterion = 'AIC',
max_lags = 2L,
trend = 0L,
shock_type = 0L,
confint = 1.96,
use_nw = F,
hor = 24L,
nw_prewhite = T,
adjust_se = T,
num_cores = 1),
NA)
} )
test_that("Test that plot() runs without error on object", {
results_lin <- lp_lin(data_set_df,
lags_endog_lin = NaN,
lags_criterion = 'AIC',
max_lags = 2L,
trend = 0L,
shock_type = 0L,
confint = 1.96,
use_nw = F,
hor = 24L,
nw_prewhite = T,
adjust_se = T,
num_cores = 1)
testthat::expect_error(results_lin,
NA)
} )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.