Learn R Programming

bvartools (version 0.2.4)

post_normal_covar_tvp: Posterior Simulation of Error Covariance Coefficients

Description

Produces posterior draws of time varying error covariance coefficients.

Usage

post_normal_covar_tvp(y, u_omega_i, v_sigma_i, psi_init)

Value

A matrix.

Arguments

y

a \(K \times T\) matrix of data with \(K\) as the number of endogenous variables and \(T\) the number of observations.

u_omega_i

matrix of error variances of the measurement equation. Either a \(K \times K\) matrix for constant variances or a \(KT \times KT\) matrix for time varying variances.

v_sigma_i

matrix of error variances of the state equation. Either an \(M \times M\) matrix for constant variances or an \(MT \times MT\) matrix for time varying variances, where \(M\) is the number of estimated variables.

psi_init

a vector of inital values of the state equation.

Details

For the multivariate model \(A_{0,t} y_t = u_t\) with \(u_t \sim N(0, \Omega_t)\) the function produces a draw of the lower triangular part of \(A_{0,t}\) similar as in Primiceri (2005), i.e., using $$y_t = Z_t \psi_t + u_t,$$ where $$Z_{t} = \begin{bmatrix} 0 & \dotsm & \dotsm & 0 \\ -y_{1, t} & 0 & \dotsm & 0 \\ 0 & -y_{[1,2], t} & \ddots & \vdots \\ \vdots & \ddots & \ddots & 0 \\ 0 & \dotsm & 0 & -y_{[1,...,K-1], t} \end{bmatrix}$$ and \(y_{[1,...,K-1], t}\) denotes the first to \((K-1)\)th elements of the vector \(y_t\).

The algorithm of Chan and Jeliazkov (2009) is used to obtain time varying coefficients.

References

Chan, J., & Jeliazkov, I. (2009). Efficient simulation and integrated likelihood estimation in state space models. International Journal of Mathematical Modelling and Numerical Optimisation, 1(1/2), 101–120. tools:::Rd_expr_doi("10.1504/IJMMNO.2009.030090")

Primiceri, G. E. (2005). Time varying structural vector autoregressions and monetary policy. The Review of Economic Studies, 72(3), 821--852. tools:::Rd_expr_doi("10.1111/j.1467-937X.2005.00353.x")

Examples

Run this code
# Load example data
data("e1")
y <- log(t(e1))

# Generate artificial draws of other matrices
u_omega_i <- diag(1, 3)
v_sigma_i <- diag(1000, 3)
psi_init <- matrix(0, 3)

# Obtain posterior draw
post_normal_covar_tvp(y, u_omega_i, v_sigma_i, psi_init)

Run the code above in your browser using DataLab