Skip to content
All library documents

Modeling Heteroskedastic Series with a Copula-GARCH Approach

Article Quant Q&A · Author: Luigi87

Summary

The document addresses fitting a Student t-copula to multiple time series when some series have strongly changing variance and inverse-CDF resampling produces convergence warnings and implausible values. The response recommends a copula-GARCH construction as a standard way to account for conditional heteroskedasticity.

In this approach, each series is modeled separately with a GARCH process. The standardized innovations from those fitted models are then joined in a copula model, which captures their dependence; simulated joint innovations can be used in subsequent resampling. The answer does not provide implementation details for Matlab or Python, nor does it establish that this procedure will resolve the reported inverse-CDF problem. It also gives no diagnostics for choosing GARCH specifications, fitting the copula, or validating generated series, so those steps remain important in applying the suggestion.

Key ideas

  • A copula can model dependence among transformed series without directly modeling their changing variances.
  • Fit a GARCH model to each series to represent its conditional variance.
  • Use the standardized innovations from each fitted series as inputs to a joint copula model.
  • The proposed workflow is a general modeling approach, not a demonstrated fix for the specific resampling warning.

Tags

Full text
# How to include heteroscedasticity in copula modelling


# How to include heteroscedasticity in copula modelling












I have a dataset of 9 variables and I want to fit a t-copula to them in order to construct a multivariate and after that resample from it. I am using Matlab.

```
rng default  % For reproducibility
[Rho, nu] = copulafit('t',[A B C D E F G H L],'Method', 'ML'); 
r = copularnd('t',Rho,nu,1000); % I resample 1000 sample from it
```

once resample I use the icdf to obtain the time series of the sample data

```
a = ksdensity(data(:,1),r(:,1),'function','icdf');
...
l = ksdensity(data(:,9),r(:,9),'function','icdf');
```

after this command i get a warning on the convergence such as:

```
Warning: Inverse CDF calculation did not converge for p = 0.001161.
```

this happens for 3 out of 9 variables. Assuming a is working fine and l gives me the warning, for a the max and min values are aligned with those of the original raw data data(:,1), while for l they are about 1e+7. Which is non-sense. Therefore I have checked the original data, for data(:,1) and data(:,9) and look like this

the second looks very very heteroskedastic compared to the first so I assume a t-copula is not suitable for that. My questions then are:

is the copula a tool only for stationary time series? in case of high heteroskedasticity, is there a way to model it for example with a conditional copula?

I would prefer if you could refer to python or Matlab.

## Answer by Richard Hardy (score 3)

https://quant.stackexchange.com/a/65547

I don't know if this will help solve your convergence issue, but a standard way of incorporating conditional heteroskedasticity in copula models is to build a copula-GARCH model. Each time series is first modelled with GARCH, and then the standardized innovations from the GARCH models of all the series are jointly modelled with a copula.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.