draw_posterior.gvarsubmodels: Posterior simulation

View source: R/draw_posterior.gvarsubmodels.R

draw_posterior.gvarsubmodelsR Documentation

Posterior simulation

Description

Estimates the country models of a Bayesian GVAR model.

Usage

## S3 method for class 'gvarsubmodels'
draw_posterior(object, ..., FUN = NULL, mc.cores = NULL, ctry = NULL)

Arguments

object

a list of data and model specifications for country-specific models, which should be passed on to function FUN. Usually, the output of a call to create_models in combination with add_priors.

...

further arguments passed to or from other methods.

FUN

the function to be applied to each country model in argument object. If NULL (default), the internal functions bvarxpost is used.

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.

ctry

character vector specifying for which countries posterior distributions should be drawn. If NULL (default), draws are generated for all country models.

Value

An object of class bgvarest, which contains a list of data, model specifications, priors, coefficient draws and information criteria for each estimated country model.

Examples

# 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)


franzmohr/bgvars documentation built on Sept. 2, 2023, 12:45 p.m.