
Last chance! 50% off unlimited learning
Sale ends in
in_paramspace
checks whether the given parameter vector lies in
the parameter space. Does NOT test the identification conditions!
in_paramspace(
p,
M,
d,
params,
constraints = NULL,
same_means = NULL,
structural_pars = NULL,
stat_tol = 0.001,
posdef_tol = 1e-08
)
a positive integer specifying the autoregressive order of the model.
a positive integer specifying the number of mixture components.
the number of time series in the system.
a real valued vector specifying the parameter values.
Should be size
and
Should be size
Should have the form
If AR constraints are employed,
Should have the form
Replace
Replace
Remove the zeros from
Replace
Above, parametrization=="mean"
, just replace each
a size I:...:I
]' I = diag(p*d^2)
.
Ignore (or set to NULL
) if linear constraints should not be employed.
Restrict the mean parameters of some regimes to be the same? Provide a list of numeric vectors
such that each numeric vector contains the regimes that should share the common mean parameters. For instance, if
M=3
, the argument list(1, 2:3)
restricts the mean parameters of the second and third regime to be
the same but the first regime has freely estimated (unconditional) mean. Ignore or set to NULL
if mean parameters
should not be restricted to be the same among any regimes. This constraint is available only for mean parametrized models;
that is, when parametrization="mean"
.
If NULL
a reduced form model is considered. For structural model, should be a list containing
the following elements:
W
- a NA
indicating that the element is
unconstrained, a positive value indicating strict positive sign constraint, a negative value indicating strict
negative sign constraint, and zero indicating that the element is constrained to zero.
C_lambda
- a C_lambda
must be either positive or zero. Ignore (or set to NULL
) if the eigenvalues
See Virolainen (2020) for the conditions required to identify the shocks and for the B-matrix as well (it is
numerical tolerance for stationarity of the AR parameters: if the "bold A" matrix of any regime
has eigenvalues larger that 1 - stat_tol
the model is classified as non-stationary. Note that if the
tolerance is too small, numerical evaluation of the log-likelihood might fail and cause error.
numerical tolerance for positive definiteness of the error term covariance matrices: if the error term covariance matrix of any regime has eigenvalues smaller than this, the model is classified as not satisfying positive definiteness assumption. Note that if the tolerance is too small, numerical evaluation of the log-likelihood might fail and cause error.
Returns TRUE
if the given parameter vector lies in the parameter space
and FALSE
otherwise.
Kalliovirta L., Meitz M. and Saikkonen P. 2016. Gaussian mixture vector autoregression. Journal of Econometrics, 192, 485-498.
Virolainen S. 2020. Structural Gaussian mixture vector autoregressive model. Unpublished working paper, available as arXiv:2007.04713.
# NOT RUN {
# GMVAR(1,1), d=2 model:
params112 <- c(1.07, 127.71, 0.99, 0.00, -0.01, 0.99, 4.05,
2.22, 8.87)
in_paramspace(p=1, M=1, d=2, params=params112)
# GMVAR(2,2), d=2 model:
params222 <- c(1.39, -0.77, 1.31, 0.14, 0.09, 1.29, -0.39,
-0.07, -0.11, -0.28, 0.92, -0.03, 4.84, 1.01, 5.93, 1.25,
0.08, -0.04, 1.27, -0.27, -0.07, 0.03, -0.31, 5.85, 3.57,
9.84, 0.74)
in_paramspace(p=2, M=2, d=2, params=params222)
# GMVAR(2,2), d=2 model with AR-parameters restricted to be
# the same for both regimes:
C_mat <- rbind(diag(2*2^2), diag(2*2^2))
params222c <- c(1.03, 2.36, 1.79, 3.00, 1.25, 0.06,0.04,
1.34, -0.29, -0.08, -0.05, -0.36, 0.93, -0.15, 5.20,
5.88, 3.56, 9.80, 0.37)
in_paramspace(p=2, M=2, d=2, params=params222c, constraints=C_mat)
# Structural GMVAR(2, 2), d=2 model identified with sign-constraints:
params222s <- c(1.03, 2.36, 1.79, 3, 1.25, 0.06, 0.04, 1.34, -0.29,
-0.08, -0.05, -0.36, 1.2, 0.05, 0.05, 1.3, -0.3, -0.1, -0.05, -0.4,
0.89, 0.72, -0.37, 2.16, 7.16, 1.3, 0.37)
W_222 <- matrix(c(1, 1, -1, 1), nrow=2, byrow=FALSE)
in_paramspace(p=2, M=2, d=2, params=params222s,
structural_pars=list(W=W_222))
# }
Run the code above in your browser using DataLab