Kendall’s function for copulas

September 12, 2012
By

(This article was first published on Freakonometrics - Tag - R-english, and kindly contributed to R-bloggers)

As mentioned in the course on copulas, a nice tool to describe dependence it Kendall’s cumulative function. Given a random pair https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/conc-19.gif?w=456 with distribution  https://i2.wp.com/freakonometrics.blog.free.fr/public/perso6/conc-17.gif?w=456, define random variable https://i1.wp.com/freakonometrics.blog.free.fr/public/perso6/conc-30.gif?w=456. Then Kendall’s cumulative function is

https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-01.gif?w=456

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://i1.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-02.gif?w=456, compute https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-03.gif?w=456 as the proportion of observation in the lower quadrant, with upper corner https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-4.gif?w=456, i.e.

https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-06.gif?w=456

  • then compute the cumulative distribution function of https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-03.gif?w=456‘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://i1.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-7.gif?w=456, then Kendall’s function is simply

https://i1.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-8.gif?w=456

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,

https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/kendall-function-anim.gif?resize=456%2C228

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://i2.wp.com/freakonometrics.blog.free.fr/public/perso6/kennnn-04.gif?w=456, and the case of independence, the upper green curve, https://i1.wp.com/freakonometrics.blog.free.fr/public/perso6/kennnnn-05.gif?w=456. It should also be mentioned that it is also common to plot not function https://i0.wp.com/freakonometrics.blog.free.fr/public/perso6/kennnn-01.gif?w=456, but function https://i1.wp.com/freakonometrics.blog.free.fr/public/perso6/kennnn-02.gif?w=456, defined as https://i1.wp.com/freakonometrics.blog.free.fr/public/perso6/kennnn-03.gif?w=456,

To leave a comment for the author, please follow the link and comment on their blog: Freakonometrics - Tag - R-english.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: , , , , , , ,

Comments are closed.

Sponsors

Mango solutions



plotly webpage

dominolab webpage



Zero Inflated Models and Generalized Linear Mixed Models with R

Quantide: statistical consulting and training

datasociety

http://www.eoda.de





ODSC

ODSC

CRC R books series





Six Sigma Online Training









Contact us if you wish to help support R-bloggers, and place your banner here.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)