sort_W_and_lambdas
sorts the columns of W matrix by sorting the lambda parameters of
the second regime to increasing order.
sort_W_and_lambdas(p, M, d, params, model = c("GMVAR", "StMVAR", "G-StMVAR"))
Returns the sorted parameter vector (that implies the same reduced form model).
a positive integer specifying the autoregressive order of the model.
a positive integer specifying the number of mixture components.
a size (2x1) integer vector specifying the number of GMVAR type components M1
in the first element and StMVAR type components M2
in the second element. The total number of mixture components
is M=M1+M2
.
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+2)-M1-1)x1)\) and have the form \(\theta\)\( = \)(\(\upsilon\)\(_{1}\), ...,\(\upsilon\)\(_{M}\), \(\alpha_{1},...,\alpha_{M-1},\)\(\nu\)\()\), 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,
\(\nu\)\(=(\nu_{M1+1},...,\nu_{M})\)
\(M1\) is the number of GMVAR type regimes.
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},\)\(\nu\)\()\), 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, 2022). If \(M=1\), \(\alpha_{m}\) and \(\lambda_{mi}\) are dropped.
If parametrization=="mean"
, just replace each \(\phi_{m,0}\) with 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.
In the GMVAR model, \(M1=M\) and \(\nu\) is dropped from the parameter vector. In the StMVAR model,
\(M1=0\). In the G-StMVAR model, the first M1
regimes are GMVAR type and the rest M2
regimes are
StMVAR type. In StMVAR and G-StMVAR models, the degrees of freedom parameters in \(\nu\)
# should be strictly larger than two.
The notation is similar to the cited literature.
No argument checks!
Only structural models are supported (but there is no need to provide structural_pars). This function does not sort the constraints of the W matrix but just sorts the columns of the W matrix and the lambda parameters. It is mainly used in the genetic algorithm to assist estimation with better identification when the constraints are not itself strong for identification of the parameters (but are invariant to different orderings of the columns of the W matrix).
Before using this function, make sure the parameter vector is sortable: the constraints on the W matrix is invariant to different orderings of the columns, there are no zero restrictions, and there are no constraints on the lambda parameters.
Virolainen S. (forthcoming). A statistically identified structural vector autoregression with endogenously switching volatility regime. Journal of Business & Economic Statistics.
Virolainen S. 2022. Gaussian and Student's t mixture vector autoregressive model with application to the asymmetric effects of monetary policy shocks in the Euro area. Unpublished working paper, available as arXiv:2109.13648.