Does anyone know how to join two multivariate distributions using copulas in r.

For example
let $X=f(x_1,x_2, \ldots,x_n)$, $Y=f(y_1,y_2,\ldots,y_n)$ I need to find a copula for joining $X$ and $Y$

Thank you,


1 Answer 1


If $C_X$ and $C_Y$ are of the same family that is closed under margins and one knows all the cross-correlations (i.e. between $X_i$ and $Y_j$ for $1 \leq i,j \leq n$) one might be lucky and can combine both copulas $C_X$ and $C_Y$ (this works for instance for the Gaussian copula family).

In the general case, one cannot combine $C_X$ and $C_Y$ in a single copula $C_{XY}$, as neither $C_X$ nor $C_Y$ will follow a uniform distribution. However, hierarchical Kendall copulas (Brechmann 2014) use the Kendall distribution function to transform the copulas to uniform margins and to combine them in a single copula. In case one wants to do it pair-wise, vine copulas that are based on the pair-copula construction (Aas 2009) are a very flexible and helpful tool.

  • $\begingroup$ in case of transforming copulas into uni variate distributions, is there any way to implement it through R? $\endgroup$
    – RAK
    Apr 22, 2015 at 5:45
  • 2
    $\begingroup$ The transformation is achieved using the Kendall distribution function. Unfortunately, its calculation might be cumbersome. However, Archimedean copulas have an expression in terms of their generator which makes the evaluation tractable. The copula package in R provides the function pK for this purpose. $\endgroup$
    – Ben
    Apr 23, 2015 at 10:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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