loglikelihood
computes log-likelihood of a GMVAR model using parameter vector
instead of an object of class 'gmvar'. Exists for convenience if one wants to for example
employ other estimation algorithms than the ones used in fitGMVAR
. Use minval
to
control what happens when the parameter vector is outside the parameter space.
loglikelihood(
data,
p,
M,
params,
conditional = TRUE,
parametrization = c("intercept", "mean"),
constraints = NULL,
same_means = NULL,
structural_pars = NULL,
minval = NA,
stat_tol = 0.001,
posdef_tol = 1e-08
)
a matrix or class 'ts'
object with d>1
columns. Each column is taken to represent
a single time series. NA
values are not supported.
a positive integer specifying the autoregressive order of the model.
a positive integer specifying the number of mixture components.
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 logical argument specifying whether the conditional or exact log-likelihood function should be used.
"intercept"
or "mean"
determining whether the model is parametrized with intercept
parameters
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
the value that will be returned if the parameter vector does not lie in the parameter space (excluding the identification condition).
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 log-likelihood if params
is in the parameters space and minval
if not.
loglikelihood_int
takes use of the function dmvn
from the package mvnfast
.
Kalliovirta L., Meitz M. and Saikkonen P. 2016. Gaussian mixture vector autoregression. Journal of Econometrics, 192, 485-498.
L<U+00FC>tkepohl H. 2005. New Introduction to Multiple Time Series Analysis, Springer.
McElroy T. 2017. Computation of vector ARMA autocovariances. Statistics and Probability Letters, 124, 92-96.
Virolainen S. 2020. Structural Gaussian mixture vector autoregressive model. Unpublished working paper, available as arXiv:2007.04713.
# NOT RUN {
# GMVAR(2, 2), d=2 model;
params22 <- c(0.36, 0.121, 0.223, 0.059, -0.151, 0.395, 0.406, -0.005,
0.083, 0.299, 0.215, 0.002, 0.03, 0.484, 0.072, 0.218, 0.02, -0.119,
0.722, 0.093, 0.032, 0.044, 0.191, 1.101, -0.004, 0.105, 0.58)
loglikelihood(data=gdpdef, p=2, M=2, params=params22)
# Structural GMVAR(2, 2), d=2 model identified with sign-constraints:
params22s <- c(0.36, 0.121, 0.484, 0.072, 0.223, 0.059, -0.151, 0.395,
0.406, -0.005, 0.083, 0.299, 0.218, 0.02, -0.119, 0.722, 0.093, 0.032,
0.044, 0.191, 0.057, 0.172, -0.46, 0.016, 3.518, 5.154, 0.58)
W_22 <- matrix(c(1, 1, -1, 1), nrow=2, byrow=FALSE)
loglikelihood(data=gdpdef, p=2, M=2, params=params22s, structural_pars=list(W=W_22))
# }
Run the code above in your browser using DataLab