En janvier dernier, j’avais fait un billet pour noter que 2010 était une année record pour les catastrophes naturelles, mais que 2009 aussi, et 2008 aussi. Bref, tous les ans, on bat des records. Mais il n’y a pas que sur le climat que l’on bat sans cesse des records. En sport aussi.
Par exemple, dimanche, le record du monde du marathon a (encore) été battu, avec 42,195 kilomètres parcourus (ou courus, tout simplement) en 2:03:58 2:03:38 par Patrick Makau (bon, certes, avec une amélioration d’une seconde par rapport au précédant record). On devrait être content (en tous les cas Xi’an semble l’être). Sauf qu’à l’hiver 2012, je vais donner un cours sur copules et valeurs extrêmes à l’UQÀM, alias MAT8886. Et je pensais faire travailler les étudiants sur les articles de John Einmahl, sur les records au 100 mètres, ou plus généralement les records en athlétisme. Ces papiers proposent une très jolie application de la théorie des valeurs extrêmes, en particulier si on est dans le domaine d’attraction de la loi de Weibull (on peut alors chercher la borne supérieur – si on travaille sur le max – du support de la distribution, appelé ici endpoint). On apprend ainsi que selon la théorie des valeurs extrêmes, le temps minimal pour parcourir les 42,195 km du marathon devrait être de 2:04:06.
I.e. le temps pour courir un marathon devrait être borné par cette valeur. Sauf que ce record a été battu. Et à plusieurs reprises me semble-t-il.
Pour aller un peu plus loin, et comprendre ce qui se passait, j’ai été chercher les données sur wikipedia, pour le marathon de Boston, Chicago, Paris, Berlin, NYC, Stockholm, Fukuoka, Rotterdam, Amsterdam ou encore Londres. J’ai ainsi le temps du vainqueur pour les dernières années. Les données ont été copiées puis collées et donc un peu de remise en forme est ici nécessaire,
> base=read.table("http://freakonometrics.blog.free.fr/public /data/topmarathon.csv",sep=";",header=TRUE) > base=base[is.na(base$TIME)==FALSE,] > base=base[(base$TIME=="")==FALSE,] > n=nchar(as.character(base$YEAR)) > base$Y=as.numeric(substr(as.character(base$YEAR),n-3,n)) > base$Y[is.na(base$Y)]=1987 > h1=as.numeric(substr(as.character(base$TIME),1,1)) > h2=as.numeric(substr(as.character(base$TIME),1,2)) > i =which(is.na(t2)) > h=h2; h[i]=h1[i] > m1=as.numeric(substr(as.character(base$TIME),3,4)) > m2=as.numeric(substr(as.character(base$TIME),4,5)) > m=m2; m[i]=m1[i] > s1=as.numeric(substr(as.character(base$TIME),6,7)) > s2=as.numeric(substr(as.character(base$TIME),7,8)) > s=s2; s[i]=s1[i] > base$T=h+m/60+s/60/60 > base=base[base$T>0,] > base0=base[base$Y>=1982,] > plot(base0$Y,base0$T,xlab="",ylab="") > library(splines) > reg=lm(T~bs(Y,6),data=base0) > lines(1983:2010,predict(reg,newdata= + data.frame(Y=1983:2010)),col="red",lwd=2)
Si on regarde attentivement on observe plusieurs choses intéressantes. La première est qu’on ne court pas à la même vitesse dans toutes les villes. Par exemple à Stockholm, le temps du plus rapide est souvent bien éloigné des temps records. Mais surtout, le temps moyen du vainqueur ne cesse de baisser avec le temps,
On a alors une forme de non-stationnarité de la série qui laisse à penser qu’il conviendrait d’étudier davantage cette non-stationnarité avant d’utiliser la théorie des valeurs extrêmes. Et cette non-stationnarité et l’analyse des records n’est pas sans rappeler la discussion que l’on avait sur les catastrophes naturelles. Il serait peut-être temps de creuser davantage…