Learn R Programming

gmvarkit (version 1.4.1)

gmvar_to_sgmvar: Switch from two-regime reduced form GMVAR model to a structural GMVAR model.

Description

gmvar_to_sgmvar constructs SGMVAR model based on a reduced form GMVAR model.

Usage

gmvar_to_sgmvar(gmvar)

Arguments

gmvar

an object of class 'gmvar' created with fitGMVAR or GMVAR.

Value

Returns an object of class 'gmvar' defining a structural GMVAR model based on a two-regime reduced form GMVAR model with the main diagonal of the B-matrix normalized to be positive.

Details

The switch is made by simultaneously diagonalizing the two error term covariance matrices with a well known matrix decomposition (Muirhead, 1982, Theorem A9.9) and then normalizing the diagonal of the matrix W positive (which implies positive diagonal of the B-matrix). Models with more that two regimes are not supported because the matrix decomposition does not generally exists for more than two covariance matrices. If the model has only one regime (= regular SVAR model), a symmetric and pos. def. square root matrix of the error term covariance matrix is used.

The columns of \(W\) as well as the lambda parameters can be re-ordered (without changing the implied reduced form model) afterwards with the function reorder_W_columns. Also all signs in any column of \(W\) can be swapped (without changing the implied reduced form model) afterwards with the function swap_W_signs. These two functions work with models containing any number of regimes.

References

  • Muirhead R.J. 1982. Aspects of Multivariate Statistical Theory, Wiley.

  • Kalliovirta L., Meitz M. and Saikkonen P. 2016. Gaussian mixture vector autoregression. Journal of Econometrics, 192, 485-498.

  • Virolainen S. 2020. Structural Gaussian mixture vector autoregressive model. Unpublished working paper, available as arXiv:2007.04713.

See Also

fitGMVAR, GMVAR, GIRF, reorder_W_columns, swap_W_signs

Examples

Run this code
# NOT RUN {
# These are long running examples
data(eurusd, package="gmvarkit")
data <- cbind(10*eurusd[,1], 100*eurusd[,2])
colnames(data) <- colnames(eurusd)

# Reduced form GMVAR(1,2) model
params12 <- c(0.622, -0.128, 0.959, 0.089, -0.006, 1.006, 1.747, 0.805,
 5.805, 3.257, 7.921, 0.952, -0.037, -0.019, 0.943, 6.925, 3.981, 12.135,
  0.789)
mod12 <- GMVAR(data, p=1, M=2, params=params12)

# Form a structural model based on the reduced form model:
mod12s <- gmvar_to_sgmvar(mod12)
mod12s
# }

Run the code above in your browser using DataLab