normalise_posterior {bsvars}R Documentation

Waggoner & Zha (2003) row signs normalisation of the posterior draws for matrix B

Description

Normalises the sign of rows of matrix B MCMC draws, provided as the first argument posterior_B, relative to matrix B_hat, provided as the second argument of the function. The implemented procedure proposed by Waggoner, Zha (2003) normalises the MCMC output in an optimal way leading to the unimodal posterior. Only normalised MCMC output is suitable for the computations of the posterior characteristics of the B matrix elements and their functions such as the impulse response functions and other economically interpretable values.

Usage

normalise_posterior(posterior, B_hat)

Arguments

posterior

posterior estimation outcome - an object of either of classes: PosteriorBSVAR, PosteriorBSVAR-MSH, PosteriorBSVAR-MIX, or PosteriorBSVAR-SV containing, amongst other draws, the S draws from the posterior distribution of the NxN matrix of contemporaneous relationships B. These draws are to be normalised with respect to:

B_hat

an NxN matrix specified by the user to have the desired row signs

Value

Nothing. The normalised elements overwrite the corresponding elements of the first argument posterior_B by reference.

Author(s)

Tomasz Wo┼║niak wozniak.tom@pm.me

References

Waggoner, D.F., and Zha, T., (2003) Likelihood Preserving Normalization in Multiple Equation Models. Journal of Econometrics, 114(2), 329–47, doi:10.1016/S0304-4076(03)00087-3.

See Also

estimate_bsvar, estimate_bsvar_msh, estimate_bsvar_sv, estimate_bsvar_mix

Examples

# upload data
data(us_fiscal_lsuw)

# specify the model and set seed
specification  = specify_bsvar_sv$new(us_fiscal_lsuw, p = 4)
set.seed(123)

# run the burn-in
burn_in        = estimate_bsvar_sv(10, specification)

# estimate the model
posterior      = estimate_bsvar_sv(50, burn_in$get_last_draw())

# normalise the posterior
BB            = posterior$last_draw$starting_values$B      # get the last draw of B
B_hat         = diag(sign(diag(BB))) %*% BB                # set positive diagonal elements
bsvars::normalise_posterior(posterior, B_hat)              # draws in posterior are normalised


[Package bsvars version 1.0.0 Index]