Skip to content
All library documents

Simulating Time-Varying Copula Correlations in MATLAB

Article Quant Q&A · Author: user138776

Summary

The document asks how to generate observations from a four-factor t-copula when the dependence matrix changes over time. Its setting is a series of 2,000 correlation matrices from a copula-DCC model, with one matrix intended for each time step.

The accepted response proposes looping through the correlation series and calling the copula simulation function with the matrix for the current step. This is a simple implementation approach for applying time-specific dependence inputs. The document provides no derivation, output, or comparison with alternatives, and it does not spell out the function’s required matrix format or how to assemble the draws into a time series. It also gives no guidance on degrees of freedom, sampling uncertainty, or validation, so those details would need to be handled separately.

Key ideas

  • Use a separate correlation matrix for each time step when simulating from a time-varying copula.
  • A loop can apply each matrix in sequence to the copula simulation call.
  • The example concerns a t-copula and correlation estimates from a copula-DCC model.
  • The answer does not explain output validation or implementation details beyond the loop approach.

Tags

Full text
# Simulate from time-dependent copula in MatLab using COPULARND


# Simulate from time-dependent copula in MatLab using COPULARND












I would like to simulate from a t-copula with time-dependent correlation matrices.

Say I have a series of 2000 correlation matrices (obtained from a copula-DCC model for data consisting of 2000 observations) for a 4 risk-factor portfolio (hence I have a 4x4x2000 array), and I would like the copularnd function to use a different correlation matrix for each time-step.

Is there any way to accomplish this?

many thanks!! Matthias

## Answer by emcor (score 1, accepted)

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

You can use a for-loop on your correlation series.

```
          for i=1:2000
          simulation=copularnd('t',rho(i),NU,N));
```

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.