Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.


As part of one of my courses I need to simulate Gaussian, Student-T and Clayton copulas. The only way to do it that I am aware of uses the conditional copulas, so

$$C_{1|2}(u, v) = P[X = F_1^{-1}(u) | Y = F_2^{-1}(v)]$$

What are the formulae for conditional copulas for Gaussian, Student-T and Clayton?

share|improve this question

1 Answer 1

up vote 4 down vote accepted

I understand that you want to generate and plot samples of Gaussian, t and Clayton copulas. The method of sampling is different for the first two cases (elliptical copula) and the third case (Archimedean copula).

Here is a brief description of the sampling. A reference for both cases is given:

In the first two cases, it is unnecessary (and not useful) to write a closed formula for the copula density function. The algorithm for sampling the copula is as follows:

For the Gaussian case:

  1. Generate two random vectors X1 and X2 from a multivariate Gaussian distribution having a given mean, correlation coefficient rho and standard deviation sigma.

  2. Compute the marginal cumulative univariate Gaussian distribution functions (U1 and U2) corresponding to each vector of samples (X1 and X2) given the appropriate mean and sigma.

  3. Plot the samples of U2 as a function of U1

For the t-case, the first step is replaced by a multivariate t-distribution with given correlation coefficient rho and given number of degrees of freedom v, and the second step is replaced by cumulative univariate t-distribution with v degrees of freedom.

Here is a Mathworks reference showing examples of the upper two cases using Matlab functions from the statistics toolbox.

For the third case (Clayton), the algorithm is as follows:

  1. Generate a random vector V from a Gamma distribution with the parameters (1/theta, 1).
  2. Generate two uniform random independent vectors X1 and X2
  3. The copula samples are computed as: U1 = psi(-ln(X1)/V) and U2 = psi(-ln(X2)/V), where psi is the Clayton generator.

Here is the article by: Alexander J. McNeil, where this algorithm is described.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.