
Multivariate GARCH Model Comparison: DCC, CGARCH, and GOGARCH
multivariate_garch_comparison.RmdOverview
The tsbs package supports three multivariate GARCH correlation specifications for modeling time-varying dependence in financial time series:
- DCC (Dynamic Conditional Correlation) - Engle (2002)
- CGARCH (Copula GARCH) - Patton (2006), Jondeau & Rockinger (2006)
- GOGARCH (Generalized Orthogonal GARCH) - van der Weide (2002)
This vignette compares these three approaches, highlighting their:
- Theoretical foundations and model structure
- Key assumptions and flexibility
- Computational considerations
- Appropriate use cases
- Integration with the MS-VARMA-GARCH bootstrap framework
Model Taxonomy
Multivariate GARCH Correlation Models
├── Correlation-Based Approaches
│ ├── DCC (dcc_modelspec)
│ │ └── Models correlation dynamics directly
│ └── CGARCH (cgarch_modelspec)
│ └── Separates marginals from dependence via copulas
└── Factor-Based Approach
└── GOGARCH (gogarch_modelspec)
└── Derives correlation from independent components
Part I: DCC (Dynamic Conditional Correlation)
Model Structure
The DCC model of Engle (2002) specifies time-varying correlations through a two-stage process:
Stage 1: Univariate GARCH
For each series :
Stage 2: Correlation Dynamics
The standardized residuals follow DCC dynamics:
where is the unconditional covariance of , and is the time-varying correlation matrix.
Key Parameters
| Parameter | Description | Typical Range |
|---|---|---|
| News impact (ARCH effect) | 0.01 - 0.10 | |
| Persistence (GARCH effect) | 0.85 - 0.98 | |
| Total persistence | < 1 (stationarity) |
Assumptions
- Normality or Student-t: Standardized residuals follow MVN or MVT
- Scalar dynamics: Same for all correlation pairs
- Symmetric response: No distinction between positive/negative shocks
Part II: CGARCH (Copula GARCH)
Model Structure
Copula GARCH separates marginal distributions from the dependence structure using copula theory.
Stage 1: Univariate GARCH + PIT
Same univariate GARCH as DCC, but with Probability Integral Transform:
where is the marginal CDF. This transforms residuals to uniform .
Stage 2: Copula Transformation
Transform uniform margins to copula residuals:
Stage 3: Correlation Dynamics
Apply DCC-style dynamics to copula residuals:
PIT Transformation Methods
| Method | Description | Use Case |
|---|---|---|
parametric |
Uses fitted distribution CDF | Standard approach |
empirical |
Uses empirical CDF | Non-parametric, robust |
spd |
Semi-parametric distribution | Flexible tails |
Copula Distributions
| Copula | Properties | Parameters |
|---|---|---|
mvn |
Gaussian | None (symmetric) |
mvt |
Student-t | Shape (tail dependence) |
ADCC Extension
CGARCH supports Asymmetric DCC (ADCC) for leverage effects:
where captures negative shocks.
Usage in tsbs
spec <- list(
list(
var_order = 1,
garch_spec_fun = "cgarch_modelspec",
distribution = "mvn", # copula distribution
garch_spec_args = list(
dcc_order = c(1, 1),
dynamics = "dcc", # or "adcc", "constant"
transformation = "parametric", # or "empirical", "spd"
copula = "mvn", # or "mvt"
garch_model = list(univariate = list(...))
)
)
)Comparison: DCC vs CGARCH
| Aspect | DCC | CGARCH |
|---|---|---|
| Marginal distributions | Implicitly normal | Flexible via PIT |
| Tail dependence | Limited (MVT only) | Student-t copula |
| Transformation step | None | PIT to uniform |
| Asymmetric dynamics | Not standard | ADCC available |
| Complexity | Lower | Higher |
| Parameters | 2 (α, β) | 2-4 (α, β, [γ], [ν]) |
Part III: GOGARCH (Generalized Orthogonal GARCH)
Model Structure
GOGARCH takes a fundamentally different approach: instead of modeling correlations directly, it models multivariate volatility through independent components.
Stage 1: ICA Decomposition
Decompose observed residuals into independent components:
where is the mixing matrix and are independent components. Equivalently: where is the unmixing matrix.
Stage 2: Component GARCH
Each independent component follows univariate GARCH:
where .
Stage 3: Covariance Reconstruction
Time-varying covariance is reconstructed via:
where .
The correlation matrix is:
where .
ICA Methods
| Method | Algorithm | Properties |
|---|---|---|
radical |
RADICAL | Robust, outlier-resistant |
fastica |
FastICA | Fast, widely used |
jade |
JADE | Joint diagonalization |
Key Insight: No Direct Correlation Parameters
Unlike DCC/CGARCH, GOGARCH has no α, β parameters for correlation dynamics. Instead, time-varying correlations emerge from:
- The fixed mixing matrix (estimated via ICA)
- The time-varying component variances (via GARCH)
Comparison: DCC/CGARCH vs GOGARCH
| Aspect | DCC/CGARCH | GOGARCH |
|---|---|---|
| Correlation source | Explicit dynamics | ICA + component volatility |
| Main parameters | α, β (correlation) | ω, α₁, β₁ per component |
| Number of params | 2-4 total | 3k (k = series) |
| Estimation | Two-stage MLE | ICA + GARCH MLE |
| Correlation dynamics | Smooth, autoregressive | Can be more complex |
| Cross-sectional | Scalar (common) | Component-specific |
Part IV: Model Selection Guide
When to Use DCC
- Few series (2-10): DCC is parsimonious
- Smooth correlation dynamics: DCC captures gradual changes
- Quick estimation: DCC is fastest
- Established benchmarks: DCC is standard in finance
When to Use CGARCH
- Non-normal marginals: When univariate distributions are clearly non-Gaussian
- Tail dependence matters: For risk management with extreme events
- Asymmetric correlation response: Use ADCC for leverage effects
- Robust tail modeling: SPD transformation for heavy tails
When to Use GOGARCH
- Factor structure suspected: When underlying independent factors drive returns
- Higher-order moments needed: Coskewness/cokurtosis for portfolio optimization
- Complex correlation patterns: When DCC dynamics are too restrictive
- Many series with latent structure: Natural for factor models
Decision Flowchart
Start
│
├─ Are marginals clearly non-normal?
│ ├─ Yes → Consider CGARCH
│ └─ No → Continue
│
├─ Is there a suspected factor structure?
│ ├─ Yes → Consider GOGARCH
│ └─ No → Continue
│
├─ Need asymmetric correlation response?
│ ├─ Yes → Use CGARCH with ADCC
│ └─ No → Continue
│
├─ Is parsimony important?
│ ├─ Yes → Use DCC
│ └─ No → Consider all three
│
└─ Default: DCC (simplest, well-understood)
Part V: Inference Considerations
The Flat Beta Problem (DCC & CGARCH)
Both DCC and CGARCH share the same correlation dynamics, leading to:
- Likelihood surface ~8x flatter in β direction than α
- Hessian-based SEs underestimate β uncertainty by ~5-6x
- Suggestion: Use bootstrap for β inference
Part VI: Computational Considerations
Estimation Time (Typical)
| Model | Small (k=2) | Medium (k=5) | Large (k=10) |
|---|---|---|---|
| DCC | Fast | Fast | Moderate |
| CGARCH | Moderate | Moderate | Slow |
| GOGARCH | Moderate | Slow | Very Slow |
Part VII: Integration with MS-VARMA-GARCH
All three models integrate with the Markov-Switching framework:
# Two-regime model with DCC
spec_ms <- list(
# Regime 1: Low volatility
list(
var_order = 1,
garch_spec_fun = "dcc_modelspec",
distribution = "mvn"
),
# Regime 2: High volatility
list(
var_order = 1,
garch_spec_fun = "dcc_modelspec",
distribution = "mvt"
)
)
# Can mix model types across regimes
spec_mixed <- list(
# Regime 1: Simple DCC
list(garch_spec_fun = "dcc_modelspec", ...),
# Regime 2: CGARCH for crises (better tail modeling)
list(garch_spec_fun = "cgarch_modelspec", ...)
)References
DCC: - Engle, R. (2002). Dynamic conditional correlation: A simple class of multivariate GARCH models. Journal of Business & Economic Statistics, 20(3), 339-350. - Aielli, G. P. (2013). Dynamic conditional correlation: On properties and estimation. JBES, 31(3), 282-299.
Copula GARCH: - Patton, A. J. (2006). Modelling asymmetric exchange rate dependence. International Economic Review, 47(2), 527-556. - Jondeau, E. & Rockinger, M. (2006). The Copula-GARCH model of conditional dependencies. Journal of International Money and Finance, 25(5), 827-853.
GOGARCH: - van der Weide, R. (2002). GO-GARCH: A multivariate generalized orthogonal GARCH model. Journal of Applied Econometrics, 17(5), 549-564. - Boswijk, H. P. & van der Weide, R. (2011). Method of moments estimation of GO-GARCH models. Journal of Econometrics, 163(1), 118-126.
ICA: - Learned-Miller, E. G. (2003). ICA using spacings estimates of entropy. JMLR, 4, 1271-1295. - Hyvärinen, A. & Oja, E. (2000). Independent component analysis: algorithms and applications. Neural Networks, 13(4-5), 411-430.