girf | R Documentation |
Computes the generalised impulse response coefficients of an object of class "bgvar"
for
'n.ahead' steps.
girf(
object,
impulse,
response,
n.ahead = 5,
shock = "sd",
ci = 0.95,
cumulative = FALSE,
mc.cores = NULL
)
object |
an object of class |
impulse |
a character vector of the impulse country and variable, respectively. |
response |
a character vector of the response country and variable, respectively.y. |
n.ahead |
number of steps ahead. |
shock |
size of the shock. Either |
ci |
a numeric between 0 and 1 specifying the probability mass covered by the credible intervals. Defaults to 0.95. |
cumulative |
logical specifying whether a cumulative IRF should be calculated. |
mc.cores |
the number of cores to use, i.e. at most how many child processes will be run simultaneously. The option is initialized from environment variable MC_CORES if set. Must be at least one, and parallelization requires at least two cores. |
A time-series object of class "bgvarirf"
.
Lütkepohl, H. (2007). New introduction to multiple time series analyis (2nd ed.). Berlin: Springer.
Pesaran, H. H., & Shin, Y. (1998). Generalized impulse response analysis in linear multivariate models. Economics Letters, 58, 17-29.
# Load data
data("gvar2019")
# Create regions
temp <- create_regions(country_data = gvar2019$country_data,
weight_data = gvar2019$weight_data,
region_weights = gvar2019$region_weights,
regions = list(EA = c("AT", "BE", "DE", "ES", "FI", "FR", "IT", "NL")),
period = 3)
country_data <- temp$country_data
weight_data <- temp$weight_data
global_data = gvar2019$global_data
# Difference series to make them stationary
country_data <- diff_variables(country_data, variables = c("y", "Dp", "r"), multi = 100)
global_data <- diff_variables(global_data, multi = 100)
# Create time varying weights
weight_data <- create_weights(weight_data, period = 3, country_data = country_data)
# Generate specifications
model_specs <- create_specifications(
country_data = country_data,
global_data = global_data,
countries = c("US", "JP", "CA", "NO", "GB", "EA"),
domestic = list(variables = c("y", "Dp", "r"), lags = 1),
foreign = list(variables = c("y", "Dp", "r"), lags = 1),
global = list(variables = c("poil"), lags = 1),
deterministic = list(const = TRUE, trend = FALSE, seasonal = FALSE),
iterations = 10,
burnin = 10)
# Note that the number of iterations and burnin draws should be much higher!
# Overwrite country-specific specifications
model_specs[["US"]][["domestic"]][["variables"]] <- c("y", "Dp", "r")
model_specs[["US"]][["foreign"]][["variables"]] <- c("y", "Dp")
# Create estimation objects
country_models <- create_models(country_data = country_data,
weight_data = weight_data,
global_data = global_data,
model_specs = model_specs)
# Add priors
models_with_priors <- add_priors(country_models,
coef = list(v_i = 1 / 9, v_i_det = 1 / 10),
sigma = list(df = 3, scale = .0001))
# Obtain posterior draws
object <- draw_posterior(models_with_priors)
# Solve GVAR
gvar <- combine_submodels(object)
# Obtain GIRF
gvar_girf <- girf(gvar, impulse = c("EA", "r"), response = c("EA", "y"), n.ahead = 20)
# Plot GIRF
plot(gvar_girf)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.