check_constraints
checks that the constraints are correctly set.
check_constraints(p, M, d, constraints = NULL, structural_pars = NULL)
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 size \((Mpd^2 x q)\) constraint matrix \(C\) specifying general linear constraints
to the autoregressive parameters. We consider constraints of form
(\(\phi\)\(_{1}\)\(,...,\)\(\phi\)\(_{M}) = \)\(C \psi\),
where \(\phi\)\(_{m}\)\( = (vec(A_{m,1}),...,vec(A_{m,p}) (pd^2 x 1), m=1,...,M\),
contains the coefficient matrices and \(\psi\) \((q x 1)\) contains the related parameters.
For example, to restrict the AR-parameters to be the same for all regimes, set \(C\)=
[I:...:I
]' \((Mpd^2 x pd^2)\) where I = diag(p*d^2)
.
Ignore (or set to NULL
) if linear constraints should not be employed.
If NULL
a reduced form model is considered. For structural model, should be a list containing
the following elements:
W
- a \((dxd)\) matrix with its entries imposing constraints on \(W\): 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 \((d(M-1) x r)\) constraint matrix that satisfies (\(\lambda\)\(_{2}\)\(,...,\)
\(\lambda\)\(_{M}) =\) \(C_{\lambda} \gamma\) where \(\gamma\) is the new \((r x 1)\)
parameter subject to which the model is estimated (similarly to AR parameter constraints). The entries of C_lambda
must be either positive or zero. Ignore (or set to NULL
) if the eigenvalues \(\lambda_{mi}\)
should not be constrained.
See Virolainen (2020) for the conditions required to identify the shocks and for the B-matrix as well (it is \(W\) times a time-varying diagonal matrix with positive diagonal entries).
Checks the constraint matrix C and throws an error if something is wrong.
If is.null(constraints)
, then this function doesn't do anything.