Following Hofert et al.'s paper "Likelihood inference for Archimedean copulas in high dimensions under known margins," (http://dl.acm.org/citation.cfm?id=2263953) I wrote a script in Matlab to produce estimates of Archimidean copulas in high dimensions. The procedure in their paper allows computing the derivatives of the generator functions without resorting to iterative methods; just closed forms. So I thought it a would idea to employ it as an alternative to the use of elliptical copulas for some multivariate modeling.

I used it to represent data with extreme dependence using Gumbel copulas. However, when I employed it to represent more than say four variates, the estimates weren't as good as with elliptical copulas! In a paper that I subsequently wrote a reviewer made me notice that this was because Gumbel copula has only one parameter, which turns it out to be useless to represent high dimensional data. I should employ, he/she said a vine copula in those cases (with added complexity); not a one-parmeter copula.

Thereafter my question is, Are Archimidean copulas really useful to represent high dimensional data? Are they useless except for maybe homogeneous dependence structures, where the dependence might be equal between pairs of variates? Any example of a good representation of multivariate data?

At the request of @kiran-k, here you can find the code to compute the copula PDF: http://goo.gl/q1b2ny

  • $\begingroup$ How do you mean "represent data" and "good estimates"? Do you simulate data according to some copula and check if this copula can be reconstructed by estimating the parameters of another family of copulas? $\endgroup$ Apr 22, 2014 at 10:37
  • $\begingroup$ Why not? I can calibrate a Gaussian and a Clayton copula and see which is better suited to fit the data. What I say is that high dimensional data does not seem to yield good Gumbel copula estimates (when compared with Gaussian); even when the dependence structure is asymmetric, which seems to favor Clayton. $\endgroup$
    – Sonntag
    Apr 22, 2014 at 10:44
  • $\begingroup$ It's not wrong. It's rather a question on robustness of model misspecification. Depending of the purpose of your analysis this might be even of particular interest. How do you calibrate copulas? $\endgroup$ Apr 22, 2014 at 10:53
  • 1
    $\begingroup$ Hello, if you made the code that you wrote open-source, it would be very helpful if you posted a link to it here! $\endgroup$
    – Kiran K.
    Jan 24, 2016 at 17:19
  • $\begingroup$ Thanks for posting the code! In the meanwhile, I have written my own code for calculating copula the PDF of the Frank, Gumbel, and Clayton copulas. You can find the Matlab code here: github.com/kkarrancsu/copula/tree/master/algorithms I have also tested this code against R's implementation. $\endgroup$
    – Kiran K.
    Feb 9, 2016 at 13:45

1 Answer 1


among the two most intensively discussed issue of Archimedean copulas are:

  • exchangeability, i.e. in a two dimensional case $C(u_1,u_2)=C(u_2,u_1)$,
  • not enough degrees of freedom.

The issue you seem to mention is the second one. The most direct solutions to this are:

  1. use vine copula - you seem to have done research on the subject already -
  2. put a hierarchical structure on your data, i.e. :

    • make small groups of data that make sense to link with Archimedean copula,
    • model dependency between groups with other dependence functions, for example with Archimedean copulas again in which case you would be in the company of nested Archimedean copula (see the R-package docu for an easy-to-read first intro)

Two are viable alternatives you should look at but be aware that the first one is rarely used in practise (if at all) since the calibration and the simulation parts of vines copulas are not pieces of cake. Practitioners tend to favor the second option, in particular for its interpretability.

  • $\begingroup$ how about hierarchical copulas? $\endgroup$
    – develarist
    Nov 22, 2020 at 19:17

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.