This function estimates a vector autoregresive model with p lags. This can be used for the null hypothesis of a linear model against an alternative hypothesis of a Markov switching vector autoregressive model with k regimes.
VARXmdl(Y, p, Z, control = list())
Arguments
Y: a (T x q) matrix of observations.
p: integer determining the number of autoregressive lags.
Z: a (T x qz) matrix of exogenous regressors.
control: List with model options including:
const: Boolean determining whether to estimate model with constant if TRUE or not if FALSE. Default is TRUE.
getSE: Boolean determining whether to compute standard errors of parameters if TRUE or not if FALSE. Default is TRUE.
Returns
List of class VARmdl (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 of 1s if const=TRUE or not if const=FALSE.
x: a (T-p x p*q) matrix of lagged observations.
fitted: a (T-p x q) matrix of fitted values.
resid: a (T-p x q) matrix of residuals.
mu: a (1 x q) vector of estimated means of each process.
beta: a ((1 + p + qz) x q) matrix of estimated coefficients.
betaZ: a (qz x q) matrix of estimated exogenous regressor coefficients.
intercept: estimate of intercepts.
phi: a (q x p*q) matrix of estimated autoregressive coefficients.
stdev: a (q x 1) vector of estimated standard deviation of each process.
sigma: a (q x q) estimated covariance matrix.
theta: vector containing: mu, vech(sigma), and vec(t(phi)).
theta_mu_ind: vector indicating location of mean with 1 and 0 otherwise.
theta_sig_ind: vector indicating location of variance and covariances with 1 and 0 otherwise.
theta_var_ind: vector indicating location of variances with 1 and 0 otherwise.
theta_phi_ind: vector indicating location of autoregressive coefficients with 1 and 0 otherwise.
stationary: Boolean indicating if process is stationary if TRUE or non-stationary if FALSE.
n: number of observations after lag transformation (i.e., n = T-p).
p: number of autoregressive lags.
q: number of series.
k: number of regimes. This is always 1 in VARmdl.
Fmat: matrix from companion form. Used to determine is process is stationary.
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 if getSE=TRUE.
info_mat: Information matrix. Computed as the inverse of -Hess. If matrix is not PD then nearest PD matrix is obtained using nearest_spd. Only returned if getSE=TRUE.
nearPD_used: Boolean determining whether nearPD function was used on info_mat if TRUE or not if FALSE. Only returned if getSE=TRUE.
theta_se: standard errors of parameters in theta. Only returned if getSE=TRUE.
Examples
# ----- Bivariate VAR(1) process ----- #set.seed(1234)# Define DGP of VAR processmdl_var <- list(n =1000, p =1, q =2, mu = c(5,-2), sigma = rbind(c(5.0,1.5), c(1.5,1.0)), phi = rbind(c(0.50,0.30), c(0.20,0.70)))# Simulate process using simuVAR() functiony_simu <- simuVAR(mdl_var)# Set options for model estimationcontrol <- list(const =TRUE, getSE =TRUE)# Estimate modely_var_mdl <- VARmdl(y_simu$y, p =2, control = control)summary(y_var_mdl)