Kendall’s function for copulas

As mentioned in the course on copulas, a nice tool to describe dependence it Kendall’s cumulative function. Given a random pair https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/conc-19.gif with distribution  https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/conc-17.gif, define random variable https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/conc-30.gif. Then Kendall’s cumulative function is

https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/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 https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kendall-02.gif, compute https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kendall-03.gif as the proportion of observation in the lower quadrant, with upper corner https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kendall-4.gif, i.e.

https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kendall-06.gif

  • then compute the cumulative distribution function of https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/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 https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kendall-7.gif, then Kendall’s function is simply

https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kendall-8.gifIf 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,

https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/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 https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kennnn-04.gif, and the case of independence, the upper green curve, https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2016/10/kennnnn-05.gif. It should also be mentioned that it is also common to plot not function https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kennnn-01.gif, but function https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kennnn-02.gif, defined as https://f-origin.hypotheses.org/wp-content/blogs.dir/253/files/2015/12/kennnn-03.gif,


4 thoughts on “Kendall’s function for copulas”

  1. Please update the pictures! I can’t see any of them and this is really the best source for this information I can find!

  2. How do you generate the red curve in last plot on the right side (empirical lambda)? I am not sure how to plot it in the bivariate and trivariate cases, and I could not find the R codes on this website. Could you help me please?

Leave a Reply

Your email address will not be published. Required fields are marked *