sort_components
sorts mixture components in the parameter vector according
to mixing weights into a decreasing order.
sort_components(p, M, d, params, 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 real valued vector specifying the parameter values.
Should be size \(((M(pd^2+d+d(d+1)/2+1)-1)x1)\) and have form \(\theta\)\( = \)(\(\upsilon\)\(_{1}\), ...,\(\upsilon\)\(_{M}\), \(\alpha_{1},...,\alpha_{M-1}\)), where:
\(\upsilon\)\(_{m}\) \( = (\phi_{m,0},\)\(\phi\)\(_{m}\)\(,\sigma_{m})\)
\(\phi\)\(_{m}\)\( = (vec(A_{m,1}),...,vec(A_{m,p})\)
and \(\sigma_{m} = vech(\Omega_{m})\), m=1,...,M.
Should have the form \(\theta\)\( = (\phi_{1,0},...,\phi_{M,0},\)\(\phi\)\(_{1},...,\)\(\phi\)\(_{M}, vec(W),\)\(\lambda\)\(_{2},...,\)\(\lambda\)\(_{M},\alpha_{1},...,\alpha_{M-1})\), where
\(\lambda\)\(_{m}=(\lambda_{m1},...,\lambda_{md})\) contains the eigenvalues of the \(m\)th mixture component.
Above, \(\phi_{m,0}\) is the intercept parameter, \(A_{m,i}\) denotes the \(i\):th coefficient matrix of the \(m\):th mixture component, \(\Omega_{m}\) denotes the error term covariance matrix of the \(m\):th mixture component, and \(\alpha_{m}\) is the mixing weight parameter. The \(W\) and \(\lambda_{mi}\) are structural parameters replacing the error term covariance matrices (see Virolainen, 2020). If \(M=1\), \(\alpha_{m}\) and \(\lambda_{mi}\) are dropped.
If parametrization=="mean"
, just replace each \(\phi_{m,0}\) with the regimewise mean \(\mu_{m}\).
\(vec()\) is vectorization operator that stacks columns of a given matrix into a vector. \(vech()\) stacks columns
of a given matrix from the principal diagonal downwards (including elements on the diagonal) into a vector.
The notation is in line with the cited article by KMS (2016) introducing the GMVAR model.
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).
Returns sorted parameter vector...
...with \(\alpha_{1}>...>\alpha_{M}\), that has form \(\theta\)\( = \)(\(\upsilon_{1}\),...,\(\upsilon_{M}\), \(\alpha_{1},...,\alpha_{M-1}\)), where:
\(\upsilon_{m}\) \( = (\phi_{m,0},\)\(\phi_{m}\)\(,\sigma_{m})\)
\(\phi_{m}\)\( = (vec(A_{m,1}),...,vec(A_{m,1})\)
and \(\sigma_{m} = vech(\Omega_{m})\), m=1,...,M.
...with \(\alpha_{1}>...>\alpha_{M}\), that has form \(\theta\)\( = (\phi_{1,0},...,\phi_{M,0},\)\(\phi\)\(_{1},...,\)\(\phi\)\(_{M}, vec(W),\)\(\lambda\)\(_{2},...,\)\(\lambda\)\(_{M},\alpha_{1},...,\alpha_{M-1})\), where
\(\lambda\)\(_{m}=(\lambda_{m1},...,\lambda_{md})\) contains the eigenvalues of the \(m\)th mixture component.
Above, \(\phi_{m,0}\) is the intercept parameter, \(A_{m,i}\) denotes the \(i\):th coefficient matrix of the \(m\):th component, \(\Omega_{m}\) denotes the error term covariance matrix of the \(m\):th component, and \(\alpha_{m}\) is the mixing weight parameter. The \(W\) and \(\lambda_{mi}\) are structural parameters replacing the error term covariance matrices (see Virolainen, 2020). If \(M=1\), \(\alpha_{m}\) and \(\lambda_{mi}\) are dropped.
\(vec()\) is vectorization operator that stack columns of the given matrix into a vector. \(vech()\) stacks columns of the given matrix from the principal diagonal downwards (including elements on the diagonal) to form a vector. The notation is in line with the cited article by KMS (2016) introducing the GMVAR model.
No argument checks!
Constrained parameter vectors are not supported (expect for constraints in W but including constraining some mean parameters to be the same among different regimes)! For structural models, sorting the regimes in a decreasing order requires re-parametrizing the decomposition of the covariance matrices if the first regime changes. As a result, the sorted parameter vector will differ from the given one not only by the ordering of the elements but also by some of the parameter values.
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.
@keywords internal