Statistics and Algorithms / GARCH Models / GARCH Models (Multivariate) / MV GARCH Restricted Covariance Models / VARIANCES option |
CC and DCC and related models all require models for the variances of the individual processes. In the output, the parameters governing the variance process are placed after the mean model parameters and before the parameters governing the mapping from variances to the full covariance matrix. They are blocked by their roles, so, for instance, all the variance intercepts are together.
All of these (except VARIANCES=KOUTMOS, which already incorporates a form of asymmetry) can have asymmetry terms added if you use the ASYMMETRY option.
The default is a standard GARCH model (VARIANCES=SIMPLE), each with the same number of GARCH parameters.
\begin{equation} {H_{ii,t}} = {c_i} + {a_i}u_{i,t - 1}^2 + {b_i}{H_{ii,t - 1}} \end{equation}
This is what the output block for VARIANCES=SIMPLEX will look like for a three variable model. C(i) is the variance constant, A(i) is the lagged squared residual ("ARCH") coefficient and B(i) is the lagged variance ("GARCH") coefficient.
4. C(1) 0.016829173 0.001976098 8.51636 0.00000000
5. C(2) 0.028388500 0.002563720 11.07317 0.00000000
6. C(3) 0.032309814 0.003032845 10.65330 0.00000000
7. A(1) 0.164136506 0.010230563 16.04374 0.00000000
8. A(2) 0.133212898 0.008828392 15.08915 0.00000000
9. A(3) 0.112705972 0.006884732 16.37042 0.00000000
10. B(1) 0.812626460 0.011288583 71.98658 0.00000000
11. B(2) 0.804331051 0.011894292 67.62328 0.00000000
12. B(3) 0.831306635 0.010391077 80.00197 0.00000000
VARIANCES=EXP gives the multivariate E-GARCH model. The individual variance models are E-GARCH models.
\begin{equation} {\rm{log H}}_{{\rm{ii,t}}} = c_i + a_i \left| {u_{i,t - 1} } \right|/\sqrt {H_{ii,t - 1} } + b_i \log H_{ii,t - 1} \end{equation}
Note that the C coefficients will not look at all like the corresponding coefficients in a standard GARCH recursion, since this is an equation for \(\log H\) rather than \(H\) itself. And, as with the univariate EGARCH, the A coefficients (and D if you use asymmetry) are on standardized residuals and don't affect the overall persistence of the variance—only the B coefficient does that. Note that this is often written with the expected value subtracted off from the \(\left| u \right|\) term. That's omitted above since it just washes into the constant and it depends rather strongly on the distribution of \(u\). (If you use t or GED errors, for instance, it will change with the shape parameter, and again, its presence or absence affects only the values of C.)
This is an example of the output block for an EGARCH with asymmetry. The D(i) are the asymmetry coefficients.
4. C(1) -0.388302831 0.016520648 -23.50409 0.00000000
5. C(2) -0.280006611 0.014158350 -19.77678 0.00000000
6. C(3) -0.212549903 0.012904538 -16.47094 0.00000000
7. A(1) 0.390917065 0.016363203 23.89001 0.00000000
8. A(2) 0.265106474 0.013130072 20.19079 0.00000000
9. A(3) 0.216811643 0.012890599 16.81936 0.00000000
10. B(1) 0.894099733 0.007099411 125.93999 0.00000000
11. B(2) 0.912114139 0.006201980 147.06823 0.00000000
12. B(3) 0.926770474 0.006197222 149.54612 0.00000000
13. D(1) 0.019518794 0.009788554 1.99404 0.04614740
14. D(2) -0.011375872 0.006560111 -1.73410 0.08290078
15. D(3) 0.043824402 0.006302749 6.95322 0.00000000
VARIANCES=SPILLOVER adds "spillover" effects to the VARIANCES=SIMPLE model, allowing the lagged squared residuals of the "other" variables to enter into the variance calculation:
\begin{equation} H_{ii,t} = c_{ii} + \sum\limits_j {a_{ij} {\kern 1pt} u_{j,t - 1}^2 + \,} b_i {\kern 1pt} H_{ii,t - 1} \end{equation}
The output block for this takes the form:
7. C(1) 0.013447146 0.001870851 7.18772 0.00000000
8. C(2) 0.023003846 0.002332264 9.86331 0.00000000
9. C(3) 0.032222689 0.002844326 11.32876 0.00000000
10. A(1,1) 0.165972437 0.010884665 15.24828 0.00000000
11. A(1,2) 0.013450984 0.002765010 4.86471 0.00000115
12. A(1,3) -0.002086714 0.000322548 -6.46946 0.00000000
13. A(2,1) 0.023299804 0.003531985 6.59680 0.00000000
14. A(2,2) 0.153443254 0.010282048 14.92341 0.00000000
15. A(2,3) 0.009559265 0.002955966 3.23389 0.00122117
16. A(3,1) -0.000452464 0.003489263 -0.12967 0.89682495
17. A(3,2) 0.026380541 0.005891969 4.47737 0.00000756
18. A(3,3) 0.121021238 0.008060161 15.01474 0.00000000
19. B(1) 0.811204171 0.010975985 73.90719 0.00000000
20. B(2) 0.772015008 0.011621376 66.43061 0.00000000
21. B(3) 0.808656548 0.010370612 77.97578 0.00000000
A(i,j) is the loading of the squared residual for variable j on the variance for i, so the non-diagonal elements are the cross-effects. B(i) is the lagged variance coefficient for variable i.
VARIANCES=VARMA was proposed by Ling and McAleer (2003). The variance terms here take the form (for a 1,1 model):
\begin{equation} H_{ii,t} = c_{ii} + \sum\limits_j {a_{ij} {\kern 1pt} u_{j,t - 1}^2 + } \sum\limits_j {b_{ij} {\kern 1pt} H_{jj,t - 1} } \end{equation}
This allows large shocks in one variable to affect the variances of the others. Note that VARMA is an extension of SPILLOVER, as it adds lagged "other" variance terms in addition to lagged other squared residuals.
This tends to get overparameterized when the number of variables gets too large. Note, by the way, that the phrase VARMA-GARCH also gets applied to a GARCH model with a VARMA mean model. Make sure that you understand which you intend.
VARIANCES=VARMA can be a rather difficult model to fit. It has numerical problems because the coefficients can be either positive or negative as you can see below. (If you try to impose non-negativity, the model fits only barely better than the model without the cross variable terms). If high residual or high volatility entries don't align very well among variables, a variance for some variable can approach zero at some observation. For instance, here A(2,3) is fairly large negative, so a very big residual in the Swiss data (variable 3) might push the variance of France (variable 2) negative in the next entry. Any zero (or negative) value for H at any data point results in an uncomputable likelihood resulting in quite a few "dead-end" parameter paths, where you approach a local maximum near a computability boundary. The more dissimilar the data series are, the harder it will be to get estimates with VARMA variances.
4. C(1) 0.011009851 0.001106113 9.95364 0.00000000
5. C(2) 0.011489265 0.001804615 6.36660 0.00000000
6. C(3) 0.021304610 0.001955298 10.89584 0.00000000
7. A(1,1) 0.129910659 0.009444814 13.75471 0.00000000
8. A(1,2) 0.032903256 0.004351554 7.56127 0.00000000
9. A(1,3) -0.002625706 0.000774117 -3.39187 0.00069416
10. A(2,1) 0.029611897 0.003823820 7.74406 0.00000000
11. A(2,2) 0.142254621 0.010294643 13.81832 0.00000000
12. A(2,3) -0.012085976 0.001802078 -6.70669 0.00000000
13. A(3,1) 0.002481219 0.005370488 0.46201 0.64407418
14. A(3,2) 0.032937641 0.007797229 4.22428 0.00002397
15. A(3,3) 0.089359548 0.007678690 11.63734 0.00000000
16. B(1,1) 0.860433868 0.008348932 103.05915 0.00000000
17. B(1,2) -0.032049330 0.004814092 -6.65740 0.00000000
18. B(1,3) 0.003083861 0.002378905 1.29634 0.19485967
19. B(2,1) -0.027854446 0.003415045 -8.15639 0.00000000
20. B(2,2) 0.787363196 0.017806848 44.21688 0.00000000
21. B(2,3) 0.054014152 0.010142159 5.32571 0.00000010
22. B(3,1) -0.007390051 0.006071894 -1.21709 0.22356937
23. B(3,2) -0.027511277 0.011884229 -2.31494 0.02061621
24. B(3,3) 0.877652457 0.012249078 71.65049 0.00000000
In the output, C(i) is the constant in the variance equation for variable i, A(i,j) is the coefficient for the "ARCH" term in the variance for i using the lagged squared residuals for variable j and B(i,j) is the coefficient in the "GARCH" term for computing the variance of i using the lagged variance of variable j.
VARIANCES=KOUTMOS is from Koutmos(1996). It is similar to SPILLOVER, but uses an EGARCH setup.
\begin{equation} \log \,\,H_{ii,t} = c_{ii} + \sum\limits_j {a_{ij} {\kern 1pt} \left( {\frac{{\left| {u_{j,t - 1} } \right|}}{{\sqrt {H_{jj,t - 1} } }} + d_j \frac{{u_{j,t - 1} }}{{\sqrt {H_{jj,t - 1} } }}} \right) + \,} b_i \log \,{\kern 1pt} H_{ii,t - 1} \end{equation}
It extends VARIANCES=EXP, which doesn’t include the off-diagonal A terms. Note that the asymmetry comes in in a tightly restricted way—each variable has one asymmetrical "index" at a given point in time which applies to all terms which use it.
The output block for this takes the form:
4. C(1) -0.333025563 0.014229055 -23.40462 0.00000000
5. C(2) -0.318645749 0.011582791 -27.51027 0.00000000
6. C(3) -0.256314323 0.011379009 -22.52519 0.00000000
7. A(1,1) 0.368281353 0.014178033 25.97549 0.00000000
8. A(1,2) 0.065355123 0.017493779 3.73591 0.00018704
9. A(1,3) -0.038663116 0.015996067 -2.41704 0.01564735
10. A(2,1) 0.089174917 0.008514294 10.47355 0.00000000
11. A(2,2) 0.312079544 0.016205921 19.25713 0.00000000
12. A(2,3) -0.021657608 0.015265041 -1.41877 0.15596558
13. A(3,1) 0.038346197 0.008701091 4.40706 0.00001048
14. A(3,2) 0.104655778 0.012043972 8.68947 0.00000000
15. A(3,3) 0.167712826 0.012842656 13.05905 0.00000000
16. B(1) 0.938873078 0.003994526 235.03992 0.00000000
17. B(2) 0.949210072 0.003458963 274.42045 0.00000000
18. B(3) 0.952207255 0.003918152 243.02459 0.00000000
19. D(1) 0.074075026 0.020036638 3.69698 0.00021818
20. D(2) -0.008025059 0.018932972 -0.42387 0.67166293
21. D(3) 0.164340488 0.028595478 5.74708 0.00000001
A(i,j) is the loading of the index for variable j on the variance for i. D(j) is the asymmetry coefficient for variable j.
Example
The following (from GARCHMV.RPF) estimates a CC-VARMA-GARCH. As mentioned above, the VARIANCES=VARMA model can be difficult to fit, so this uses some slower, but more exact, settings for the optimization algorithms using NLPAR.
nlpar(derive=fourth,exactline)
garch(p=1,q=1,mv=cc,variances=varma,pmethod=simplex,piters=10) / $
xjpn xfra xsui
Example Output
Output will have the mean model first, the VARIANCES block second, then any estimated parameters governing the restricted covariance process (here the R's for the CC model).
MV-CC GARCH with VARMA Variances - Estimation by BFGS
Convergence in 102 Iterations. Final criterion was 0.0000000 <= 0.0000100
Usable Observations 6236
Log Likelihood -12679.6117
Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. Mean(XJPN) -0.000736365 0.005687626 -0.12947 0.89698745
2. Mean(XFRA) -0.004928502 0.006021537 -0.81848 0.41308370
3. Mean(XSUI) 0.004522104 0.007369896 0.61359 0.53948548
4. C(1) 0.011009851 0.001106113 9.95364 0.00000000
5. C(2) 0.011489265 0.001804615 6.36660 0.00000000
6. C(3) 0.021304610 0.001955298 10.89584 0.00000000
7. A(1,1) 0.129910659 0.009444814 13.75471 0.00000000
8. A(1,2) 0.032903256 0.004351554 7.56127 0.00000000
9. A(1,3) -0.002625706 0.000774117 -3.39187 0.00069416
10. A(2,1) 0.029611897 0.003823820 7.74406 0.00000000
11. A(2,2) 0.142254621 0.010294643 13.81832 0.00000000
12. A(2,3) -0.012085976 0.001802078 -6.70669 0.00000000
13. A(3,1) 0.002481219 0.005370488 0.46201 0.64407418
14. A(3,2) 0.032937641 0.007797229 4.22428 0.00002397
15. A(3,3) 0.089359548 0.007678690 11.63734 0.00000000
16. B(1,1) 0.860433868 0.008348932 103.05915 0.00000000
17. B(1,2) -0.032049330 0.004814092 -6.65740 0.00000000
18. B(1,3) 0.003083861 0.002378905 1.29634 0.19485967
19. B(2,1) -0.027854446 0.003415045 -8.15639 0.00000000
20. B(2,2) 0.787363196 0.017806848 44.21688 0.00000000
21. B(2,3) 0.054014152 0.010142159 5.32571 0.00000010
22. B(3,1) -0.007390051 0.006071894 -1.21709 0.22356937
23. B(3,2) -0.027511277 0.011884229 -2.31494 0.02061621
24. B(3,3) 0.877652457 0.012249078 71.65049 0.00000000
25. R(2,1) 0.559873267 0.008657402 64.66990 0.00000000
26. R(3,1) 0.573176839 0.008445591 67.86699 0.00000000
27. R(3,2) 0.830630501 0.003937859 210.93455 0.00000000
Copyright © 2024 Thomas A. Doan