bvec | R Documentation |
'bvec' is used to create objects of class "bvec"
.
A plot function for objects of class "bvec"
.
bvec(
y,
alpha = NULL,
beta = NULL,
beta_x = NULL,
beta_d = NULL,
r = NULL,
Pi = NULL,
Pi_x = NULL,
Pi_d = NULL,
w = NULL,
w_x = NULL,
w_d = NULL,
Gamma = NULL,
Upsilon = NULL,
C = NULL,
x = NULL,
x_x = NULL,
x_d = NULL,
A0 = NULL,
Sigma = NULL,
data = NULL,
exogen = NULL
)
## S3 method for class 'bvec'
plot(x, ci = 0.95, type = "hist", ...)
y |
a time-series object of differenced endogenous variables,
usually, a result of a call to |
alpha |
a |
beta |
a |
beta_x |
a |
beta_d |
a |
r |
an integer of the rank of the cointegration matrix. |
Pi |
a |
Pi_x |
a |
Pi_d |
a |
w |
a time-series object of lagged endogenous variables in levels, which enter the
cointegration term, usually, a result of a call to |
w_x |
a time-series object of lagged unmodelled, non-deterministic variables in levels, which enter the
cointegration term, usually, a result of a call to |
w_d |
a time-series object of deterministic terms, which enter the
cointegration term, usually, a result of a call to |
Gamma |
a |
Upsilon |
an |
C |
an |
x |
an object of class |
x_x |
a time-series object of |
x_d |
a time-series object of |
A0 |
either a |
Sigma |
a |
data |
the original time-series object of endogenous variables. |
exogen |
the original time-series object of unmodelled variables. |
ci |
interval used to calculate credible bands for time-varying parameters. |
type |
either |
... |
further graphical parameters. |
For the vector error correction model with unmodelled exogenous variables (VECX)
A_0 \Delta y_t = \Pi^{+} \begin{pmatrix} y_{t-1} \\ x_{t-1} \\ d^{R}_{t-1} \end{pmatrix} +
\sum_{i = 1}^{p-1} \Gamma_i \Delta y_{t-i} +
\sum_{i = 0}^{s-1} \Upsilon_i \Delta x_{t-i} +
C^{UR} d^{UR}_t + u_t
the function collects the S
draws of a Gibbs sampler in a standardised object,
where \Delta y_t
is a K-dimensional vector of differenced endogenous variables
and A_0
is a K \times K
matrix of structural coefficients.
\Pi^{+} = \left[ \Pi, \Pi^{x}, \Pi^{d} \right]
is
the coefficient matrix of the error correction term, where
y_{t-1}
, x_{t-1}
and d^{R}_{t-1}
are the first lags of endogenous,
exogenous variables in levels and restricted deterministic terms, respectively.
\Pi
, \Pi^{x}
, and \Pi^{d}
are the corresponding coefficient matrices, respectively.
\Gamma_i
is a coefficient matrix of lagged differenced endogenous variabels.
\Delta x_t
is an M-dimensional vector of unmodelled, non-deterministic variables
and \Upsilon_i
its corresponding coefficient matrix. d_t
is an
N^{UR}
-dimensional vector of unrestricted deterministics and C^{UR}
the corresponding coefficient matrix.
u_t
is an error term with u_t \sim N(0, \Sigma_u)
.
For time varying parameter and stochastic volatility models the respective coefficients and error covariance matrix of the above model are assumed to be time varying, respectively.
The draws of the different coefficient matrices provided in alpha
, beta
,
Pi
, Pi_x
, Pi_d
, A0
, Gamma
, Ypsilon
,
C
and Sigma
have to correspond to the same MCMC iteration.
An object of class "gvec"
containing the following components, if specified:
data |
the original time-series object of endogenous variables. |
exogen |
the original time-series object of unmodelled variables. |
y |
a time-series object of differenced endogenous variables. |
w |
a time-series object of lagged endogenous variables in levels, which enter the cointegration term. |
w_x |
a time-series object of lagged unmodelled, non-deterministic variables in levels, which enter the cointegration term. |
w_d |
a time-series object of deterministic terms, which enter the cointegration term. |
x |
a time-series object of |
x_x |
a time-series object of |
x_d |
a time-series object of |
A0 |
an |
A0_lambda |
an |
A0_sigma |
an |
alpha |
an |
beta |
an |
beta_x |
an |
beta_d |
an |
Pi |
an |
Pi_x |
an |
Pi_d |
an |
Gamma |
an |
Gamma_lamba |
an |
Gamma_sigma |
an |
Upsilon |
an |
Upsilon_lambda |
an |
Upsilon_sigma |
an |
C |
an |
C_lambda |
an |
C_sigma |
an |
Sigma |
an |
Sigma_lambda |
an |
Sigma_sigma |
an |
specifications |
a list containing information on the model specification. |
# Load data
data("e6")
# Generate model
data <- gen_vec(e6, p = 4, r = 1, const = "unrestricted", season = "unrestricted")
# Obtain data matrices
y <- t(data$data$Y)
w <- t(data$data$W)
x <- t(data$data$X)
# Reset random number generator for reproducibility
set.seed(1234567)
iterations <- 400 # Number of iterations of the Gibbs sampler
# Chosen number of iterations should be much higher, e.g. 30000.
burnin <- 100 # Number of burn-in draws
draws <- iterations + burnin
r <- 1 # Set rank
tt <- ncol(y) # Number of observations
k <- nrow(y) # Number of endogenous variables
k_w <- nrow(w) # Number of regressors in error correction term
k_x <- nrow(x) # Number of differenced regressors and unrestrictec deterministic terms
k_alpha <- k * r # Number of elements in alpha
k_beta <- k_w * r # Number of elements in beta
k_gamma <- k * k_x
# Set uninformative priors
a_mu_prior <- matrix(0, k_x * k) # Vector of prior parameter means
a_v_i_prior <- diag(0, k_x * k) # Inverse of the prior covariance matrix
v_i <- 0
p_tau_i <- diag(1, k_w)
u_sigma_df_prior <- r # Prior degrees of freedom
u_sigma_scale_prior <- diag(0, k) # Prior covariance matrix
u_sigma_df_post <- tt + u_sigma_df_prior # Posterior degrees of freedom
# Initial values
beta <- matrix(c(1, -4), k_w, r)
u_sigma_i <- diag(1 / .0001, k)
g_i <- u_sigma_i
# Data containers
draws_alpha <- matrix(NA, k_alpha, iterations)
draws_beta <- matrix(NA, k_beta, iterations)
draws_pi <- matrix(NA, k * k_w, iterations)
draws_gamma <- matrix(NA, k_gamma, iterations)
draws_sigma <- matrix(NA, k^2, iterations)
# Start Gibbs sampler
for (draw in 1:draws) {
# Draw conditional mean parameters
temp <- post_coint_kls(y = y, beta = beta, w = w, x = x, sigma_i = u_sigma_i,
v_i = v_i, p_tau_i = p_tau_i, g_i = g_i,
gamma_mu_prior = a_mu_prior,
gamma_v_i_prior = a_v_i_prior)
alpha <- temp$alpha
beta <- temp$beta
Pi <- temp$Pi
gamma <- temp$Gamma
# Draw variance-covariance matrix
u <- y - Pi %*% w - matrix(gamma, k) %*% x
u_sigma_scale_post <- solve(tcrossprod(u) +
v_i * alpha %*% tcrossprod(crossprod(beta, p_tau_i) %*% beta, alpha))
u_sigma_i <- matrix(rWishart(1, u_sigma_df_post, u_sigma_scale_post)[,, 1], k)
u_sigma <- solve(u_sigma_i)
# Update g_i
g_i <- u_sigma_i
# Store draws
if (draw > burnin) {
draws_alpha[, draw - burnin] <- alpha
draws_beta[, draw - burnin] <- beta
draws_pi[, draw - burnin] <- Pi
draws_gamma[, draw - burnin] <- gamma
draws_sigma[, draw - burnin] <- u_sigma
}
}
# Number of non-deterministic coefficients
k_nondet <- (k_x - 4) * k
# Generate bvec object
bvec_est <- bvec(y = data$data$Y, w = data$data$W,
x = data$data$X[, 1:6],
x_d = data$data$X[, 7:10],
Pi = draws_pi,
Gamma = draws_gamma[1:k_nondet,],
C = draws_gamma[(k_nondet + 1):nrow(draws_gamma),],
Sigma = draws_sigma)
# Load data
data("e6")
# Generate model
model <- gen_vec(data = e6, p = 2, r = 1, const = "unrestricted",
iterations = 20, burnin = 10)
# Chosen number of iterations and burn-in should be much higher.
# Add priors
model <- add_priors(model)
# Obtain posterior draws
object <- draw_posterior(model)
# Plot draws
plot(object)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.