RATS 10.1
RATS 10.1

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=EXPONENTIAL

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

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

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

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