I am having trouble finding anything on sampling from conditional copulas. I am only interested in the bivariate case. So, if $C(u,v)$ is my copula, I want to sample from it given a specific quantile of $u$ (for example).

$ C(u=x^*,v) $

I am real newb on the field of copulas and just read through the basic theories (Sklar's theorem, multivariate dependence measures) and played around with some functions in R. Any help greatly appreciated.


How to sample from a given univariate CDF is a huge subject, so I will assume that part of the answer is known and will address how to find the conditional CDF from the copula.

By definition, any copula assigns probabilities to rectangular regions (within the unit square) delimited on the right by its first argument and above by its second argument. In particular, when $U$ and $V$ are uniformly distributed with $C$ as the copula for $(U,V)$ and $0 \lt \epsilon \le 1 - u$ is sufficiently small,

$$\eqalign{ \Pr(U\in (u, u+\epsilon]\text{ and }V \le v) &= \Pr(U\le u+\epsilon, V \le v) - \Pr(U\le u, V \le v) \\ &=C(u+\epsilon, v) - C(u, v). }$$

Therefore, the conditional cumulative distribution function ought to arise as the (right-hand) limiting value of

$$\Pr(U\in (u, u+\epsilon]\text{ and }V \le v\,\Big|\,U\in (u, u+\epsilon]) = \frac{C(u+\epsilon, v) - C(u, v)}{\epsilon}.$$

Provided this limit exists (which it will almost everywhere for $u$), by definition it is the first partial derivative, $\partial C(u,v)/\partial u$. This, therefore, gives the conditional CDF for $V\,\Big|\, U=u$ evaluated at $v$.


The left figure shows a contour plot of the copula (representing a surface) $C(u,v)=uv/(u+v-uv)$. The right figure is the graph of the conditional distribution of $V$ for $u\approx 0.23$. It is a cross section of the rightward slope of the surface.


Roger B. Nelsen, An Introduction to Copulas, Second Edition. Springer 2006: Section 2.9, Random Variate Generation.

| cite | improve this answer | |
  • 1
    $\begingroup$ Wow, thanks a lot for the detailed answer. Getting a lot clearer now. Also just borrowed the book you put into references and read a bit in it. As I see it all of that comes down to being able to compute the inverse of the conditional copula-function $c_u^{-1}$. However, for most cases this seems to be rather difficult. I tried my luck on clayton and gumbel, which are not as straightforward to compute as I hoped for. Additionally, I fear it will become pretty uneffective if I try to implement it on my own. Do you maybe have some ideas / experiecnes to sample from conditional copulas under R? $\endgroup$ – noclue Nov 21 '14 at 14:15
  • $\begingroup$ Just found a conditional copula function in the R-package (cCopula). Seems to be restricted to the Archimedian-familiy only, but better than nothing, I guess! $\endgroup$ – noclue Nov 21 '14 at 14:42
  • 1
    $\begingroup$ Yes: $F(x,y^{*}) = \Pr(X\le x\text{ and }Y\le y^{*})$. $\endgroup$ – whuber Nov 24 '14 at 15:22
  • 1
    $\begingroup$ Both $\Pr(X\le x\text{ and }Y\le y^{*})$ and $\Pr(X\le x\mid Y=y^{*})$ are both explicitly functions of the ordered pair $(x,y^{*})$. The former is a joint probability while the latter is a conditional probability. $\endgroup$ – whuber Nov 24 '14 at 16:43
  • 1
    $\begingroup$ Provided $F$ and $G$ represent continuous densities, that is correct. $\endgroup$ – whuber Nov 26 '14 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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