Home  /  Products  /  Features  /  Multivariate GARCH

MGARCH stands for multivariate GARCH, or multivariate generalized autoregressive conditional heteroskedasticity. MGARCH allows the conditional-on-past-history covariance matrix of the dependent variables to follow a flexible dynamic structure.

Stata fits MGARCH models. mgarch implements conditional correlation and diagonal vech models. Conditional correlation models use nonlinear combinations of univariate GARCH models to represent the conditional covariances. mgarch provides estimators for three popular conditional correlation models: constant conditional correlation (CCC), dynamic conditional correlation (DCC), and varying conditional correlation (VCC).

Below we analyze daily data on returns of Toyota, Nissan, and Honda stocks. We include the lag of the Nissan stock in the mean equation for Honda. We specify one ARCH term and one GARCH term for the conditional variance equation of each company.

. webuse stocks
(Data from Yahoo! Finance)

. mgarch ccc (toyota nissan = , noconstant) (honda = L.nissan, noconstant), arch(1) garch(1)


And the results are

Constant conditional correlation MGARCH model

Sample: 2 thru 2015                                     Number of obs =  2,014
Distribution: Gaussian                                  Wald chi2(1)  =   1.81
Log likelihood = 17439.87                               Prob > chi2   = 0.1781

Coefficient  Std. err.      z    P>|z|     [95% conf. interval]

ARCH_toyota
arch
L1.     .0619604   .0087942     7.05   0.000      .044724    .0791968

garch
L1.      .9208961   .0110995    82.97   0.000     .8991414    .9426508

_cons     4.43e-06   1.13e-06     3.94   0.000     2.23e-06    6.64e-06

ARCH_nissan
arch
L1.     .0773094    .012328     6.27   0.000      .053147    .1014718

garch
L1.     .9060882   .0147303    61.51   0.000     .8772173     .934959

_cons     6.77e-06   1.85e-06     3.66   0.000     3.14e-06    .0000104

honda
nissan
L1.      .0186628   .0138575     1.35   0.178    -.0084975    .0458231

ARCH_honda
arch
L1.     .0433741    .006996     6.20   0.000     .0296622    .0570861

garch
L1.     .9391094   .0100707    93.25   0.000     .9193712    .9588477

_cons     5.02e-06   1.31e-06     3.83   0.000     2.45e-06    7.60e-06

corr(toyota,
nissan)     .652299   .0128271    50.85   0.000     .6271583    .6774396
corr(toyota,
honda)    .7189531   .0108005    66.57   0.000     .6977845    .7401218
corr(nissan,
honda)     .628435   .0135653    46.33   0.000     .6018475    .6550225



Having estimated our model, we can now forecast the conditional variances 50 time periods into the future.

. tsappend, add(50)
. predict H*, variance dynamic(2016)


We can graph the result:

Above, we fit a CCC model. We could instead fit a DCC model in which the correlation matrix at each time period is modeled as a weighted average of its own past and recent shocks.

Below we fit a bivariate model of stock returns and specify that the error term follows a multivariate Student’s t distribution:

. webuse stocks
(Data from Yahoo! Finance)

. mgarch dcc (toyota honda =) , arch(1) garch(1) distribution(t)


And the results are

Dynamic conditional correlation MGARCH model

Sample: 1 thru 2015                                      Number of obs = 2,015
Distribution: t                                          Wald chi2(.)  =     .
Log likelihood = 11697.67                                Prob > chi2   =     .

Coefficient  Std. err.      z    P>|z|     [95% conf. interval]

toyota
_cons     .0003445   .0002998     1.15   0.251    -.0002431    .0009321

ARCH_toyota
arch
L1.     .0557317   .0096148     5.80   0.000     .0368871    .0745764

garch
L1.     .9284291   .0121769    76.25   0.000     .9045629    .9522953

_cons     4.16e-06   1.25e-06     3.34   0.001     1.71e-06    6.60e-06

honda
_cons     .0005349   .0003277     1.63   0.103    -.0001074    .0011771

ARCH_honda
arch
L1.     .0496351   .0089487     5.55   0.000     .0320959    .0671743

garch
L1.     .9342399   .0117626    79.42   0.000     .9111857    .9572942

_cons     4.89e-06   1.46e-06     3.36   0.001     2.04e-06    7.75e-06

corr(toyota,
honda)     .734078   .0144722    50.72   0.000     .7057129     .762443

lambda1     .0322827   .0162193     1.99   0.047     .0004933     .064072
lambda2     .8483622   .1025462     8.27   0.000     .6473754    1.049349

/df     8.597491   1.024617     8.39   0.000     6.589279     10.6057



The DCC model reduces to the CCC model when the adjustment parameters that govern the dynamic correlation process are jointly equal to zero. We can perform a Wald test to test this hypothesis.

.  test _b[/Adjustment:lambda1] = _b[/Adjustment:lambda2] = 0

chi2(  2) =  346.91
Prob > chi2 =    0.0000


We have fit a CCC model and a DCC model. We could fit a VCC model in which the correlation matrix is modeled as a weighted average of its own past and averages of recent shocks.

To illustrate the flexibility of the conditional correlation estimators, we specify each variance equation separately in the mgarch command below. We include two ARCH terms, one GARCH term, and an independent variable in the variance equation of Honda and one ARCH term for the variance equation of Toyota.

. mgarch vcc (toyota = , arch(1)) (honda = , arch(1 5) garch(1)
het(L.nissan))

(Output omitted)

Iteration 0:  Log likelihood =  11258.814
Iteration 1:  Log likelihood =  11258.814

Varying conditional correlation MGARCH model
Sample: 2 thru 2015                                             Number of obs = 2,014
Distribution: Gaussian                                          Wald chi2(.)  =     .
Log likelihood = 11258.81                                       Prob > chi2   =     .

Coefficient  Std. err.      z    P>|z|     [95% conf. interval]

toyota
_cons      .0003512   .0003839     0.91   0.360    -.0004012    .0011036

ARCH_toyota
arch
L1.      .1438127   .0248111     5.80   0.000     .0951839    .1924414

_cons      .0002859   .0000107    26.81   0.000      .000265    .0003068

honda
_cons      .0005797   .0003707     1.56   0.118    -.0001469    .0013064

ARCH_honda
arch
L1.      .0361065   .0071381     5.06   0.000     .0221161    .0500969
L5.     -.0291567   .0075788    -3.85   0.000    -.0440109   -.0143025

garch
L1.      .9771736   .0073828   132.36   0.000     .9627036    .9916435

nissan
L1.     -22.75912   6.287587    -3.62   0.000    -35.08256   -10.43567

_cons     -12.37179   .3394606   -36.45   0.000    -13.03712   -11.70646

corr(toyota,honda)     .7236678   .0127599    56.71   0.000     .6986588    .7486768