Skip to content

DCC-GARCH model

Separate marginal GARCH volatility from dynamic conditional correlation, calculate a checked DCC update, and understand normalization, fitting and forecast timing.

A DCC-GARCH model forecasts a multivariate return covariance matrix by combining a separate GARCH volatility filter for each asset with dynamic conditional correlations between assets. A risk desk can therefore update both the size of individual return shocks and their co-movement when forecasting portfolio risk.

The distinction matters: two assets can each become more volatile without becoming more correlated. DCC gives those changes separate places in the model.

Separate scales from co-movement

Write returns as rt=μt+εtr_t=\mu_t+\varepsilon_t, where the mean forecast μt\mu_t uses information available before period tt. Engle's decomposition is

Ht=Var(εt∣Ft−1)=DtRtDt,Dt=diag⁡(h1t,…,hnt).H_t=\text{Var}(\varepsilon_t\mid\mathcal F_{t-1})=D_tR_tD_t, \qquad D_t=\operatorname{diag}(\sqrt{h_{1t}},\ldots,\sqrt{h_{nt}}).
Each hith_{it} is an asset's conditional variance, commonly supplied by a univariate GARCH model. RtR_t contains conditional correlations. Standardize the observed mean-adjusted shocks using the volatilities forecast for that period:
zt=Dt−1εt,E[ztzt⊤∣Ft−1]=Rt.z_t=D_t^{-1}\varepsilon_t, \qquad \mathbb E[z_tz_t^\top\mid\mathcal F_{t-1}]=R_t.
Standardization gives each component conditional variance one; it does not make the components independent or make the vector ztz_t identically distributed through time. Its conditional correlation is changing. The original model and its volatility–correlation separation are set out in Engle's DCC paper, §III.

The update produces Q; normalization produces R

The common scalar DCC(1,1) specification uses two shared correlation-dynamics parameters:
Qt=(1−a−b)Qˉ+azt−1zt−1⊤+bQt−1.Q_t=(1-a-b)\bar Q+a z_{t-1}z_{t-1}^\top+bQ_{t-1}.

Here aa weights the latest standardized shock products; bb retains the previous auxiliary state. The fixed matrix Qˉ\bar Q is a target, commonly estimated from training-sample standardized residual moments. These two scalar parameters are shared across pairs; this is a restrictive, parsimonious specification rather than a separate dynamic model for every pair.

Crucially, QtQ_t is an auxiliary matrix, not the conditional correlation matrix. With Ct=diag⁡(q11,t,…,qnn,t)C_t=\operatorname{diag}(q_{11,t},\ldots,q_{nn,t}), set
Rt=Ct−1/2QtCt−1/2,ρij,t=qij,tqii,tqjj,t.R_t=C_t^{-1/2}Q_tC_t^{-1/2}, \qquad \rho_{ij,t}=\frac{q_{ij,t}}{\sqrt{q_{ii,t}q_{jj,t}}}.
This gives RtR_t unit diagonal. A usual sufficient construction takes a,b≥0a,b\ge0, a+b<1a+b<1, and positive-definite Qˉ,Q0\bar Q,Q_0. The positive target contribution plus positive-semidefinite shock products keeps QtQ_t positive definite; normalization preserves that property. Positive marginal variances then give positive-definite HtH_t. These are sufficient conditions, not a complete characterization of every admissible DCC specification. See Engle and Sheppard, §2.
Do not turn a+b<1a+b<1 into a universal stationarity proof. Finite marginal second moments require conditions on the marginal volatility models; strict stationarity, moment existence and estimator consistency are separate questions. Nor should Qˉ\bar Q automatically be labelled the unconditional mean of RtR_t: normalization is nonlinear. Aielli's later research identifies inconsistencies that can arise in the traditional large-system estimator and proposes the distinct corrected DCC, or cDCC, specification.

A negative shock product is not yet a correlation

Take a fictional two-asset, one-period update, with no annualisation:
Qˉ=Qt−1=I2,zt−1=(2−1),a=0.05,b=0.90.\bar Q=Q_{t-1}=I_2,\qquad z_{t-1}=\begin{pmatrix}2\\-1\end{pmatrix},\qquad a=0.05,\quad b=0.90.

The latest standardized surprises have opposite signs. Their outer product and the resulting update are

zt−1zt−1⊤=(4−2−21),Qt=0.05I2+0.05(4−2−21)+0.90I2=(1.15−0.10−0.101).z_{t-1}z_{t-1}^\top= \begin{pmatrix}4&-2\\-2&1\end{pmatrix}, \qquad Q_t=0.05I_2+0.05 \begin{pmatrix}4&-2\\-2&1\end{pmatrix}+0.90I_2 =\begin{pmatrix}1.15&-0.10\\-0.10&1\end{pmatrix}.

Reading −0.10-0.10 as the correlation would skip the denominator:

ρ12,t=−0.101.15×1≈−0.0932505,Rt=(1−0.0932505−0.09325051).\rho_{12,t}=\frac{-0.10}{\sqrt{1.15\times1}} \approx-0.0932505, \qquad R_t=\begin{pmatrix}1&-0.0932505\\-0.0932505&1\end{pmatrix}.
Suppose the marginal filters forecast volatilities of 1% and 2% for period tt. In decimal-return-squared units,
Ht=(0.0001−0.0000186501−0.00001865010.0004).H_t= \begin{pmatrix} 0.0001&-0.0000186501\\ -0.0000186501&0.0004 \end{pmatrix}.
The covariance is approximately −0.186501 squared percentage points. Doubling both volatility forecasts leaves RtR_t unchanged but multiplies every entry of HtH_t by four. The covariance becomes approximately −0.746004 squared percentage points. Correlation alone cannot specify portfolio risk.
Fictional DCC update: standardized shocks 2 and minus 1 give Q diagonal 1.15 and 1 and off-diagonal minus 0.10. Normalization gives correlation minus 0.093250. At volatilities 1% and 2%, covariance is minus 0.186501 squared percentage points; doubling both volatilities multiplies covariance by four.
Fictional DCC update: standardized shocks 2 and minus 1 give Q diagonal 1.15 and 1 and off-diagonal minus 0.10. Normalization gives correlation minus 0.093250. At volatilities 1% and 2%, covariance is minus 0.186501 squared percentage points; doubling both volatilities multiplies covariance by four.
Original calculation from supplied fictional model states. The lower panel holds correlation fixed while changing the marginal volatility forecasts; pp² means squared percentage points.

Fit the stages, respect the forecast clock

The usual two-stage fit estimates the marginal volatility models first, then fits correlation parameters using their standardized residuals. Its Gaussian correlation objective includes

−12∑t(log⁡det⁡Rt+zt⊤Rt−1zt).-\frac12\sum_t\left(\log\det R_t+z_t^\top R_t^{-1}z_t\right).
A Gaussian fitting criterion does not establish Gaussian returns. Inference must account for first-stage estimation and the assumptions of the chosen estimator; Engle and Sheppard, §3 develops the two-stage setup and standard-error treatment.
With these subscripts, HtH_t is known before observing εt\varepsilon_t. Once that shock arrives, use ztz_t to update Qt+1Q_{t+1} and the marginal filters to obtain Dt+1D_{t+1}. Fitting Qˉ\bar Q or model parameters using observations beyond the forecast origin leaks future information even if the recursion itself uses lagged shocks.
For longer horizons, normalizing an expected future QQ generally differs from taking the expectation of normalized future QQ. A univariate-style geometric correlation forecast is therefore an approximation, not an automatic exact DCC result. Engle and Kelly, §2.7 explains the nonlinear forecasting obstacle and approximation methods. Simulation requires a specified innovation distribution; covariance alone does not supply one.

In applications, check matched return timestamps, marginal residual diagnostics, remaining dependence in standardized products, convergence and sensitivity to initialization. Compare forecasts out of sample. A dynamic fitted correlation path does not establish causation, capture all joint tail risk or prove better hedging.

For the marginal filters used here, ARCH and GARCH develops the univariate recursion, ARCH testing and quasi-likelihood. A public preview is available; the full lesson requires membership.

Sources

Last updated
  • dcc garch
  • dynamic correlation
  • multivariate volatility
  • covariance forecasting
  • econometrics
← Back to the glossaryBack to top ↑