MSARXmdl | R Documentation |
This function estimates a Markov-switching autoregressive model
MSARXmdl(Y, p, k, Z, control = list())
Y |
a |
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 |
Z |
a |
control |
List with model options including:
|
List of class MSARmdl
(S3
object) with model attributes including:
y: a (T x 1)
matrix of observations.
X: a (T-p x p + const)
matrix of lagged observations with a leading column of 1
s.
x: a (T-p x p)
matrix of lagged observations.
fitted: a (T x 1)
matrix of fitted values.
resid: a (T x 1)
matrix of residuals.
intercept: a (k x 1)
vector of estimated intercepts of each process.
mu: a (k x 1)
vector of estimated means of each process.
beta: a ((1 + p + qz) x k)
matrix of estimated coefficients.
betaZ: a (qz x q)
matrix of estimated exogenous regressor coefficients.
phi: estimates of autoregressive coefficients.
stdev: a (k x 1)
vector of estimated standard deviation of each process.
sigma: a (k x 1)
estimated covariance matrix.
theta: vector containing: mu
and vech(sigma)
.
theta_mu_ind: vector indicating location of mean with 1
and 0
otherwise.
theta_sig_ind: vector indicating location of variances with 1
and 0
otherwise.
theta_var_ind: vector indicating location of variances with 1
and 0
otherwise. This is the same as theta_sig_ind
in MSARmdl
.
theta_P_ind: vector indicating location of transition matrix elements with 1
and 0
otherwise.
stationary: Boolean indicating if process is stationary if TRUE
or non-stationary if FALSE
.
n: number of observations (same as T
).
p: number of autoregressive lags.
q: number of series. This is always 1
in MSARmdl
.
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 time t
.
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. If FALSE
model was estimated with constant mean.
msvar: Boolean. If TRUE
model was estimated with switch in variance. If FALSE
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 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
.
trace: List with Lists of estimation output for each initial value used due to use_diff_init > 1
.
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..
Hamilton, James D. 1990. “Analysis of time series subject to changes in regime.” Journal of econometrics, 45 (1-2): 39–70.
ARmdl
# --------------------------- Use simulated process ----------------------------
set.seed(1234)
# Define DGP of MS AR process
mdl_ms2 <- list(n = 200,
mu = c(5,10),
sigma = c(1,4),
phi = c(0.5),
k = 2,
P = rbind(c(0.90, 0.10),
c(0.10, 0.90)))
# Simulate process using simuMSAR() function
y_ms_simu <- simuMSAR(mdl_ms2)
# Set options for model estimation
control <- list(msmu = TRUE,
msvar = TRUE,
method = "EM",
use_diff_init = 1)
# Estimate model
ms_mdl <- MSARmdl(y_ms_simu$y, p = 1, k = 2, control = control)
summary(ms_mdl)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.