Quant Memo
Advanced

Multivariate GARCH and DCC

Extending GARCH-style volatility modeling from one series to many at once, so correlations between assets — not just each asset's own variance — are allowed to change over time, as captured by the Dynamic Conditional Correlation model.

Prerequisites: EGARCH and Asymmetric Volatility

A portfolio's risk depends not just on how volatile each holding is individually, but on how those holdings move together — and that correlation is famously unstable. Two stocks that wander independently in a calm market can suddenly become tightly correlated during a crash, as everyone sells everything at once. A risk model that fits each asset's volatility separately (say, with individual GARCH models) but assumes a fixed, constant correlation between them will badly underestimate risk exactly when it matters most — during the correlated selloffs that a diversified portfolio was supposed to protect against. Multivariate GARCH models extend the same clustering logic to the whole covariance matrix at once, and DCC (Dynamic Conditional Correlation) is the most widely used practical way to do it.

An analogy: dancers who sometimes move in sync

Picture a group of dancers who each have their own energy level that rises and falls over the course of a performance (their individual "volatility"). Separately, sometimes they move in tight coordination — a choreographed unison section — and other times they move independently, doing their own thing. Watching only each dancer's energy level tells you nothing about whether they're currently in sync. DCC models exactly these two things separately: first, each dancer's own energy level over time (individual GARCH volatilities), and second, on top of that, how tightly coordinated the group currently is (the dynamic correlation), which can rise sharply during a "everyone freezes together" moment even if individual energy levels haven't changed much.

The mechanics, one symbol at a time

DCC works in two stages. First, fit a univariate GARCH model to each asset separately to get each one's own time-varying volatility σi,t\sigma_{i,t}, and standardize each asset's return by its own volatility to get zi,t=εi,t/σi,tz_{i,t} = \varepsilon_{i,t}/\sigma_{i,t}. Second, model the correlation between these standardized residuals as itself evolving over time:

Qt=(1ab)Qˉ+azt1zt1+bQt1,Q_t = (1-a-b)\bar{Q} + a\, z_{t-1} z_{t-1}' + b\, Q_{t-1},

where Qˉ\bar{Q} is the long-run average correlation matrix of the standardized residuals, zt1zt1z_{t-1} z_{t-1}' captures how correlated yesterday's standardized shocks happened to be, and Qt1Q_{t-1} is yesterday's estimate carried forward. In plain English: today's correlation estimate is a weighted blend of the long-run average correlation, a nudge toward whatever correlation just showed up in yesterday's shocks, and yesterday's own estimate — the same clustering logic as GARCH variance, but applied to the co-movement between assets rather than to any single asset's variance. The actual correlation matrix used for risk is then rescaled from QtQ_t to ensure it's a valid correlation matrix (entries between -1 and 1, diagonal of exactly 1).

Worked example 1: correlation spiking after a shock

Suppose two assets have a long-run average correlation ρˉ=0.30\bar{\rho} = 0.30, and DCC parameters a=0.05a = 0.05, b=0.90b = 0.90 (so 1ab=0.051-a-b = 0.05). Yesterday, both assets had large, same-signed standardized shocks, giving an instantaneous cross-product term implying a shock correlation of roughly 0.85, while yesterday's DCC estimate was ρt1=0.32\rho_{t-1} = 0.32. Today's updated correlation (schematically, on the same simplified scale):

ρt0.05(0.30)+0.05(0.85)+0.90(0.32)=0.015+0.0425+0.288=0.3455.\rho_t \approx 0.05(0.30) + 0.05(0.85) + 0.90(0.32) = 0.015 + 0.0425 + 0.288 = 0.3455.

A single day of correlated shocks nudges the estimate from 0.32 to about 0.35 — a modest but real increase, and one that compounds if the correlated shocks continue for several days, since ρt1\rho_{t-1} feeds directly into the next day's calculation.

Worked example 2: portfolio variance under changing correlation

A two-asset portfolio holds $100 in each of two assets with individual daily volatilities of σ1=1.5%\sigma_1 = 1.5\% and σ2=1.5%\sigma_2 = 1.5\%. Portfolio variance is w12σ12+w22σ22+2w1w2σ1σ2ρw_1^2\sigma_1^2 + w_2^2\sigma_2^2 + 2w_1w_2\sigma_1\sigma_2\rho with w1=w2=0.5w_1=w_2=0.5 (in return-weight terms). At the calm-market correlation of ρ=0.30\rho = 0.30:

σp2=0.25(0.015)2+0.25(0.015)2+2(0.25)(0.015)(0.015)(0.30)0.0001463,\sigma_p^2 = 0.25(0.015)^2 + 0.25(0.015)^2 + 2(0.25)(0.015)(0.015)(0.30) \approx 0.0001463,

giving σp1.21%\sigma_p \approx 1.21\%. If DCC estimates correlation has spiked to ρ=0.85\rho = 0.85 during a stress period (individual volatilities unchanged for simplicity):

σp2=0.25(0.015)2+0.25(0.015)2+2(0.25)(0.015)(0.015)(0.85)0.0002053,\sigma_p^2 = 0.25(0.015)^2 + 0.25(0.015)^2 + 2(0.25)(0.015)(0.015)(0.85) \approx 0.0002053,

giving σp1.43%\sigma_p \approx 1.43\% — about 18% higher portfolio volatility purely from the correlation shift, with each asset's own volatility unchanged. A risk model using a fixed ρ=0.30\rho = 0.30 throughout would have missed this entirely.

stress: ρ spikes individual vol (stable)
DCC correlation (red) spikes sharply during a stress episode and reverts afterward, while each asset's own GARCH volatility (dashed) can remain comparatively stable — the two are genuinely separate dynamics.
ρ=0.30: 1.21% ρ=0.85: 1.43%
Portfolio volatility rises about 18% purely from a correlation spike, with no change to either asset's individual volatility — exactly the risk a fixed-correlation model would miss.

What this means in practice

DCC-style multivariate GARCH is the standard practical tool for time-varying covariance matrices used in dynamic hedge ratios, portfolio risk forecasting, and stress-testing diversification assumptions, because a static correlation matrix estimated over a long calm period routinely understates the correlation spike that shows up exactly during a crisis, when diversification is needed most. It complements factor-based covariance estimation (see Estimating the Factor Covariance Matrix) as an alternative or supplementary way to capture time-varying risk.

DCC models each asset's own volatility with a standard GARCH model, then separately models how correlated the assets' standardized shocks are, letting correlation itself cluster and spike during stress periods — capturing the well-documented pattern that diversification often weakens exactly when a portfolio needs it most.

A common error is running DCC on a large number of assets without checking that the two-stage estimation (individual GARCH fits, then the correlation dynamics) remains numerically stable — with many assets, the correlation matrix can become poorly conditioned, and estimated correlations can behave erratically. It's also easy to mistake a temporary correlation spike for a permanent regime shift; DCC by construction reverts toward the long-run average Qˉ\bar{Q}, so a spike should be expected to fade unless the underlying economic relationship between the assets has genuinely and durably changed.

Related concepts

Practice in interviews

Further reading

  • Engle, Dynamic Conditional Correlation, Journal of Business & Economic Statistics
  • Bauwens, Laurent, and Rombouts, Multivariate GARCH Models: A Survey, Journal of Applied Econometrics
ShareTwitterLinkedIn