I have 2 different variates W,X. I want to compute Gumbel copula for these variates. I followed following steps for the same: 1. To compute kendall's tau I used R's package Kendall. From kendall's tau I computed gumbel parameter(alpha) as alpha=1/(1-tau).

  1. Then I computed gumbel copula using R's package copula. function used during the computation was gumbelCopula(alpha,dim=2).

  2. After that I used rCopula() function to simulate copula values.

Above method worked fine for 2 variates W,X. Now when I wish to compute gumbel Copula for 4 variates W,X,Y,Z using the same procedure, it is failing in 1st step itself as I cannot compute kandall tau for 4 variates. Kendall tau works only for 2 variates. Can someone please illuminate me with the method of computing Gumbel copula for 4 variates?

Thanks in Advance


1 Answer 1


Of course you can compute Kendall's tau for more than two variables. It works just like an ordinary correlation matrix:

> head(dtf)
           x1         x2         x3         x4
1  2.80031516  2.0579953 -3.2937880 -1.4396337
2 -0.29548884 -0.4481532  0.4627308  1.7195001
3  0.01647146 -0.7325987  0.4971646  0.9161413
4  0.04904244 -0.4731110  2.2536735  0.1470832
5 -0.48472875  0.4763764 -0.2161675 -1.1249446
6  1.05771122 -0.7619064  0.9190161 -1.5307390
> cor(dtf,method="kendall")
           x1          x2          x3          x4
x1  1.0000000  0.56734694 -0.30775510  0.01551020
x2  0.5673469  1.00000000 -0.43020408  0.03020408
x3 -0.3077551 -0.43020408  1.00000000 -0.02530612
x4  0.0155102  0.03020408 -0.02530612  1.00000000

What's the actual problem you're encountering?

  • $\begingroup$ I was using Kendall() function of kendall package. Okay we can compute kendall's tau by above method. I tried above method and it is working. Now the issue is for 4 variates Kendall's tau is a vector. But gumbelCopula() function of copula package is taking a parameter alpha whose length should not exceed 1. like for example: gum_copula_test<gumbelCopula(param=c(1.4,2.3,4.5,1.8,4.4,6.7),dim=4) Error: length(param) == 1 is not TRUE. $\endgroup$
    – user45232
    May 19, 2014 at 12:26
  • 1
    $\begingroup$ No, for 4 variates, Kendall's tau is a matrix, not a vector. The function gumbelCopula implements a particular form of Archimedean copula, where, specifically, a single parameter is used to govern the strength of association of the whole vector. Do you want vine copulas, or something similar, perhaps? $\endgroup$
    – Glen_b
    May 19, 2014 at 12:44
  • $\begingroup$ By Kendall's tau being a vector means that I converted the Kendall's matrix into vector using P2p() function of 'copula' package so that I could pass the vector generated as an argument to any copula computing function. I computed student's T copula from tCopula() function which takes in vector as an argument for computing multi-variate copula. I wish to do something of that sort in gumbelCopula.I want a copula object of multi variate gumbel copula which takes in either correlation matrix or non-parametric correlations like kendall's tau as parameters. $\endgroup$
    – user45232
    May 20, 2014 at 6:09

Your Answer

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

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