MSVARmdl {MSTest} | R Documentation |
Markov-switching vector autoregressive model
Description
This function estimates a Markov-switching vector autoregressive model
Usage
MSVARmdl(Y, p, k, control = list())
Arguments
Y |
( |
p |
integer for the number of lags to use in estimation. Must be greater than or equal to |
k |
integer for the number of regimes to use in estimation. Must be greater than or equal to |
control |
List with optimization options including:
|
Value
List of class MSVARmdl
(S3
object) with model attributes including:
y: a
(T-p x q)
matrix of observations.X: a
(T-p x p*q + const)
matrix of lagged observations with a leading column of1
s.x: a
(T-p x p*q)
matrix of lagged observations.resid: a
(T-p x q)
matrix of residuals.inter: a
(k x q)
matrix of estimated intercepts of each process.mu: a
(k x q)
matrix of estimated means of each process.phi: estimates of autoregressive coefficients.
Fmat: Companion matrix containing autoregressive coefficients.
stdev: List with
k
(q x q)
matrices with estimated standard deviation on the diagonal.sigma: List with
k
(q x q)
matrices with estimated covariance matrix.theta: vector containing:
mu
andvech(sigma)
.theta_mu_ind: vector indicating location of mean with
1
and0
otherwise.theta_sig_ind: vector indicating location of variance and covariances with
1
and0
otherwise.theta_var_ind: vector indicating location of variances with
1
and0
otherwise.theta_P_ind: vector indicating location of transition matrix elements with
1
and0
otherwise.stationary: Boolean indicating if process is stationary if
TRUE
or non-stationary ifFALSE
.n: number of observations (same as
T
).p: number of autoregressive lags.
q: number of series.
k: number of regimes in estimated model.
P: a
(k x k)
transition matrix.pinf: a
(k x 1)
vector with limiting probabilities of each regime.St: a
(T x k)
vector with smoothed probabilities of each regime at each timet
.deltath: double with maximum absolute difference in vector
theta
between last iteration.iterations: number of EM iterations performed to achieve convergence (if less than
maxit
).theta_0: vector of initial values used.
init_used: number of different initial values used to get a finite solution. See description of input
maxit_converge
.msmu: Boolean. If
TRUE
model was estimated with switch in mean. IfFALSE
model was estimated with constant mean.msvar: Boolean. If
TRUE
model was estimated with switch in variance. IfFALSE
model was estimated with constant variance.control: List with model options used.
logLike: log-likelihood.
AIC: Akaike information criterion.
BIC: Bayesian (Schwarz) information criterion.
Hess: Hessian matrix. Approximated using
hessian
and only returned ifgetSE=TRUE
.info_mat: Information matrix. Computed as the inverse of
-Hess
. If matrix is not PD then nearest PD matrix is obtained usingnearest_spd
. Only returned ifgetSE=TRUE
.nearPD_used: Boolean determining whether
nearPD
function was used oninfo_mat
ifTRUE
or not ifFALSE
. Only returned ifgetSE=TRUE
.theta_se: standard errors of parameters in
theta
. Only returned ifgetSE=TRUE
.trace: List with Lists of estimation output for each initial value used due to
use_diff_init > 1
.
List with model characteristics
References
Dempster, A. P., N. M. Laird, and D. B. Rubin. 1977. “Maximum Likelihood from Incomplete Data via the EM Algorithm.” Journal of the Royal Statistical Society. Series B 39 (1): 1–38..
Krolzig, Hans-Martin. 1997. “The markov-switching vector autoregressive model.”. Springer.
See Also
Examples
set.seed(123)
# Define DGP of MS VAR process
mdl_msvar2 <- list(n = 200,
p = 1,
q = 2,
mu = rbind(c(5, -2),
c(10, 2)),
sigma = list(rbind(c(5.0, 1.5),
c(1.5, 1.0)),
rbind(c(7.0, 3.0),
c(3.0, 2.0))),
phi = rbind(c(0.50, 0.30),
c(0.20, 0.70)),
k = 2,
P = rbind(c(0.90, 0.10),
c(0.10, 0.90)))
# Simulate process using simuMSVAR() function
y_msvar_simu <- simuMSVAR(mdl_msvar2)
# Set options for model estimation
control <- list(msmu = TRUE,
msvar = TRUE,
method = "EM",
use_diff_init = 1)
# Estimate model
y_msvar_mdl <- MSVARmdl(y_msvar_simu$y, p = 2, k = 2, control)
summary(y_msvar_mdl)