Statistics and Algorithms / GARCH Models / GARCH Models (Multivariate) / MV GARCH VECH Models |
This is a family of multivariate GARCH models named after the vech operator, which this takes a symmetric matrix and returns a vector with only its lower triangle. In RATS, symmetric arrays are stored by rows:
(1,1)
(2,1) (2,2)
(3,1) (3,2) (3,3)
...
so that’s how the coefficients are arranged. The (very) rarely used "full" VECH model uses a linear recursion in "vech" form:
\begin{equation} vech\left( {{\bf{H}}_t } \right) = {\bf{C}} + {\bf{A}}vech\left( {{\bf{u}}_{t - 1} {\bf{u'}}_{t - 1} } \right) + {\bf{B}}vech\left( {{\bf{H}}_{t - 1} } \right){\kern 1pt} {\kern 1pt} \label{eq:garch_vech} \end{equation}
You implement this with the option MV=VECH. However, this has a large number of free parameters (even in a bivariate case), and it’s clearly unwieldy with more than two variables. The VECH takes a very long time to estimate, and is rarely used, so we didn’t include it in the example file.
The most common member of the general "VECH" family is the DVECH, described below. Another common choice is BEKK (which has restricted forms Triangular BEKK (TBEKK) and Diagonal BEKK (DBEKK)). A less common choice is EWMA (Exponential Weighted Moving Average).
Each of these has some restricted (in some cases very heavily restricted) mapping from free parameters to the full \(\bf{A}\) and \(\bf{B}\) matrices. You can use the VECHMAT option to create a HASH[RECT] with the matrices for a VECH representation of the model. That can be used for forecasting and variance impulse responses. Note that only these restricted VECH models allow a relatively simple forecasting formula. The elements of the HASH are "C" for the variance constant, "A" for the coefficients on the (vech'ed) outer product of the lagged residuals, "B" for the coefficients on the (vech'ed) lagged covariance matrix and "D" (if needed) for the coefficients on the (vech'ed) outer product of the sign-restricted residuals if you used asymmetry.
A more feasible model is the diagonal VECH (DVECH) which is what is generally meant if someone specifies a multivariate GARCH model without any other description. On GARCH, this is chosen with MV=DVECH or MV=STANDARD and is the default if you do no other options besides picking \(p\) and \(q\).
\begin{equation} {\bf{H}}_{ij,t} = c_{ij} + a_{ij} {\kern 1pt} {\kern 1pt} u_{i,t - 1} {\kern 1pt} {\kern 1pt} {\kern 1pt} u_{j,t - 1} + b_{ij} {\kern 1pt} {\bf{H}}_{ij,t - 1} \label{eq:garch_dvech} \end{equation}
Model \eqref{eq:garch_dvech} is known as diagonal VECH because it is \eqref{eq:garch_vech} with \(\bf{A}\) and \(\bf{B}\) constrained to be diagonal.
While this is the most “straightforward” extension of a univariate model, the lack of connection among the variance terms is implausible, and it may be hard for the parameter estimates to stay clear of regions where the covariance matrix is on the verge of being deficient rank at some data points.
This often needs a bit of help to convergence with some preliminary simplex iterations. Do not overdo this: 10 simplex iterations is usually enough. The example of this from GARCHMV.RPF is
garch(p=1,q=1,pmethod=simplex,piters=10) / xjpn xfra xsui
Since the covariance matrix is symmetric, only the lower triangle needs to be modeled. In the output, C(i,j) is the variance constant, A(i,j) is the lagged squared residual ("ARCH") coefficient and B(i,j) is the lagged variance ("GARCH") coefficient. Because the components of the covariance matrix are modeled separately, it's possible for the \(\bf{H}\) matrix to be non-positive definite for some parameters (even if all are positive). As a result, a DVECH can be hard to estimate, particularly if applied to data series which don't have relatively similar behavior.
Output
MV-GARCH - Estimation by BFGS
Convergence in 122 Iterations. Final criterion was 0.0000063 <= 0.0000100
Usable Observations 6236
Log Likelihood -11835.6549
Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. Mean(XJPN) 0.004660940 0.006798380 0.68560 0.49296810
2. Mean(XFRA) -0.003498719 0.006868955 -0.50935 0.61050525
3. Mean(XSUI) -0.002360634 0.008084067 -0.29201 0.77027846
4. C(1,1) 0.009016960 0.001272675 7.08504 0.00000000
5. C(2,1) 0.005697569 0.000749382 7.60303 0.00000000
6. C(2,2) 0.011503488 0.001287755 8.93298 0.00000000
7. C(3,1) 0.006015917 0.000806761 7.45688 0.00000000
8. C(3,2) 0.009933856 0.001236798 8.03192 0.00000000
9. C(3,3) 0.012775891 0.001565976 8.15842 0.00000000
10. A(1,1) 0.105800775 0.007736000 13.67642 0.00000000
11. A(2,1) 0.093889723 0.006062327 15.48741 0.00000000
12. A(2,2) 0.128144732 0.007036947 18.21027 0.00000000
13. A(3,1) 0.088759105 0.005470840 16.22404 0.00000000
14. A(3,2) 0.113620201 0.005943420 19.11697 0.00000000
15. A(3,3) 0.111522114 0.006146301 18.14459 0.00000000
16. B(1,1) 0.883968076 0.007890261 112.03280 0.00000000
17. B(2,1) 0.891020282 0.006097508 146.12859 0.00000000
18. B(2,2) 0.860886644 0.007137910 120.60766 0.00000000
19. B(3,1) 0.897670507 0.005628248 159.49376 0.00000000
20. B(3,2) 0.874866959 0.006324082 138.33897 0.00000000
21. B(3,3) 0.877454252 0.006493130 135.13579 0.00000000
Copyright © 2025 Thomas A. Doan