As mentioned in the course on copulas, a nice tool to describe dependence it Kendall's cumulative function. Given a random pair http://freakonometrics.blog.free.fr/public/perso6/conc-19.gif with distribution  http://freakonometrics.blog.free.fr/public/perso6/conc-17.gif, define random variable http://freakonometrics.blog.free.fr/public/perso6/conc-30.gif. Then Kendall's cumulative function is

http://freakonometrics.blog.free.fr/public/perso6/kendall-01.gif

Genest and Rivest (1993) introduced that function to choose among Archimedean copulas (we'll get back to this point below).

From a computational point of view, computing such a function can be done as follows,

  • for all http://freakonometrics.blog.free.fr/public/perso6/kendall-02.gif, compute http://freakonometrics.blog.free.fr/public/perso6/kendall-03.gif as the proportion of observation in the lower quadrant, with upper corner http://freakonometrics.blog.free.fr/public/perso6/kendall-4.gif, i.e.

http://freakonometrics.blog.free.fr/public/perso6/kendall-06.gif

  • then compute the cumulative distribution function of http://freakonometrics.blog.free.fr/public/perso6/kendall-03.gif's.

To visualize the construction of that cumulative distribution function, consider the following animation

Thus, here the code to compute simply that cumulative distribution function is

n=nrow(X)
i=rep(1:n,each=n)
j=rep(1:n,n)
S=((X[i,1]>X[j,1])&(X[i,2]>X[j,2]))
Z=tapply(S,i,sum)/(n-1)

The graph can be obtain either using

plot(ecdf(Z))

or

plot(sort(Z),(1:n)/n,type="s",col="red")

The interesting point is that for an Archimedean copula with generator http://freakonometrics.blog.free.fr/public/perso6/kendall-7.gif, then Kendall's function is simply

http://freakonometrics.blog.free.fr/public/perso6/kendall-8.gif

If we're too lazy to do the maths, at least, it is possible to compute those functions numerically. For instance, for Clayton copula,

h=.001
phi=function(t){(t^(-alpha)-1)}
dphi=function(t){(phi(t+h)-phi(t-h))/2/h}
k=function(t){t-phi(t)/dphi(t)}
Kc=Vectorize(k)

Similarly, let us consider Gumbel copula,

phi=function(t){(-log(t))^(theta)}
dphi=function(t){(phi(t+h)-phi(t-h))/2/h}
k=function(t){t-phi(t)/dphi(t)}
Kg=Vectorize(k)

If we plot the empirical Kendall's function (obtained from the sample), with different theoretical ones, derived from Clayton copulas (on the left, in blue) or Gumbel copula (on the right, in purple), we have the following,

http://freakonometrics.blog.free.fr/public/perso6/kendall-function-anim.gif

Note that the different curves were obtained when Clayton copula has Kendall's tau equal to 0, .1, .2, .3, ..., .9, 1, and similarly for Gumbel copula (so that Figures can be compared). The following table gives a correspondence, from Kendall's tau to the underlying parameter of a copula (for different families)

as well as Spearman's rho,


To conclude, observe that there are two important particular cases that can be identified here: the case of perfect dependent, on the first diagonal when http://freakonometrics.blog.free.fr/public/perso6/kennnn-04.gif, and the case of independence, the upper green curve, http://freakonometrics.blog.free.fr/public/perso6/kennnnn-05.gif. It should also be mentioned that it is also common to plot not function http://freakonometrics.blog.free.fr/public/perso6/kennnn-01.gif, but function http://freakonometrics.blog.free.fr/public/perso6/kennnn-02.gif, defined as http://freakonometrics.blog.free.fr/public/perso6/kennnn-03.gif,