La Disparition, by George Pérec, and conditional probabilities

As mentioned here (about dust on keyboards), E is undoubtedly the most important letter in French… So, what else do we use if we do not use the E ?

Here is the empirical frequency we obtained on two books, by Mauss and Durkheim (which seem to be representative of what we usually observe)

So if we look at the conditional distribution we have without letter E, we obtain

But does this conditional distribution can be interpreted ? For instance, if on your keyboard E is broken, will the distribution of letters used be like that ? We might think that the answer is no, because if we cannot use a letter, we adapt ourselves, and try to use words that do not contain E.

Actually it is possible to see how we would write if we try to avoid letter E : in 1969, Georges Pérec published a book “la disparition” where the challenge was to write a novel (with a story inside) without using letter E. If we look at the distribution of letters in that book, we have

We can see that we still need to use vowels: if we look at the difference between Pérec, and the conditional distribution obtained from Mauss and Durkheim, we have

i.e. if we cannot used E then we use much more A or I or even U.It is clearly a substitution effect: the French language needs a constant dose of vowels. In Mauss and Durkheim, 37% of the letters are vowels (17% for E and 20% for A, I,O, U and Y). In Pérec, A, I, O, U and Y represent now 30% of the letters…

Marc Levy n’utilise que 150 mots ?

L’intérêt des voyages en avion, c’est que ça offre beaucoup de temps pour lire… Et comme j’avais fini mon polar arrivé à Paris, je me suis rabattu sur la version papier de Rue89. Et un article m’a beaucoup plus, où l’on apprenait que les hommes ne pouvaient pas lire Marc Levy… Ne l’ayant jamais lu moi même je ne suis pas apte pour juger, mais une raison évoquée était qu’il utilisait trop peu de mots… En particulier, l’article reprenait une déclaration de François Busnel qui affirmait (ici) “Ces livres sont cousus de fil blanc et écrits avec 150 mots. C’est comme la série Les Feux de l’amour.”

Ah, voilà une affirmation qui m’intéresse en tant que statisticien… combien les écrivains utilisent de mots dans leurs romans…?

Si on regarde Le Voleur d’Ombre, il contient environ 64 000 mots, en tout. Parmi ces mots, on en compte 6 830 uniques (en sachant qu’ici abandonnèrent,abandonne et abandonnait, par exemple, sont considérés comme différents). Le code R est d’ailleurs assez simple,

> livre=scan("Levy-Marc-Le voleur d'ombres.txt", 
+ what=character())
> minlivre=tolower(livre)
> TABLE=rev(sort(table(minlivre)))
> length(TABLE)
[1] 6827
> length(livre)
[1] 64122
> D1=data.frame(mot=names(x),N=as.numeric(x),
+ Freq=as.numeric(x)/sum(x)*100)

(je tiens à préciser que j’ai remplacé les virgules, les points, les apostrophes, etc par des espaces, dans le texte de base afin de récupérer dans le fichier simplement des mots, sans symboles – et j’ai transformé les mots pour n’avoir que des minuscules).

Histoire de comparer avec d’autres auteurs, j’ai pris un auteur plus ancien (pour éviter les soucis de droits d’auteurs, car les textes se trouvent en ligne), à savoir Théophile Gautier, et plus particulièrement son Capitaine Fracasse (oui, on reste dans les pavés). En tout, 127 177 mots, dont 15 595 uniques. Si on compare les courbes de Lorentz, on obtient le graphique suivant,

Les 20 mots les plus fréquents sont (en nombre et surtout en fréquence) respectivement

cbind(D1[1:20,],D2[1:20,])
    mot    N      Freq mot    N      Freq
1    de 2310 3.6025077  de 6284 4.9411450
2    la 1591 2.4812077  et 3862 3.0367126
3    je 1534 2.3923147  la 3720 2.9250572
4     à 1270 1.9805995  le 3235 2.5436989
5    le 1165 1.8168491   à 2429 1.9099365
6    et 1121 1.7482299 les 2214 1.7408808
7   que 1096 1.7092418   d 2192 1.7235821
8     j  889 1.3864196  un 2075 1.6315843
9     l  873 1.3614672   l 2055 1.6158582
10   un  857 1.3365148 une 1678 1.3194210
11   en  780 1.2164312  en 1497 1.1770996
12   me  736 1.1478120  il 1494 1.1747407
13  pas  701 1.0932285 des 1455 1.1440748
14  les  665 1.0370856  se 1178 0.9262681
15   il  654 1.0199308 que 1085 0.8531417
16 elle  653 1.0183712  du 1072 0.8429197
17   tu  596 0.9294782 qui 1064 0.8366293
18   ai  588 0.9170020 son  971 0.7635028
19 dans  549 0.8561804   s  922 0.7249739
20    d  542 0.8452637  qu  915 0.7194697

On retrouve malgré tout que Marc Levy utilise une autre manière d’écrire, qu’il utilise beaucoup le je ou le moi (par rapport à Théophile Gautier). Mais critiquer car il utilise peu de mots me semble un peu léger…. il semble en utiliser autant que des vrais grands écrivains….

Course on risk measures (in French)

The course on risk measure, in Luminy, starts at 16.00 on Monday (here). The slides can be found here,

Note that additional references can be downloaded on the internet, e.g. the short course on risk measures by Freddy Delbaen (here) or the article from the Encyclopedia of quantitative finance, by Hans Föllmer and Alexander Schied (there). See also here for the paper by Jean Marc Tallon, Johanna Etner and Meglena Jeleva, on decision theory under uncertainty.

Plus intéressants que les nobels: les ig-nobels

Il y a quelques semaines, Alessandro Pluchino, Andrea Rapisarda et Cesare Garofalo ont obtenu un des IG nobels (ici, probablement la plus haute distinction scientifique qui soit) pour avoir proposé une étude numérique du principe de Peter. Comme le notait Rue89, ils ont fait la “démonstration mathématique que la promotion aléatoire permet de gagner en efficacité dans une entreprise” ().

  • Le principe de Peter

Historiquement, tout vient d’un livre de Laurence Peter et Raymond Hull, paru en 1969, et intitulé précisément Peter principle. On y retrouve une formulation connu en management, avec le temps, tout poste sera occupé par un incompétent incapable d’en assumer la responsabilité“. Pour cela, on part de principes très simples, et que tout le monde admettra. Le premier est que quelqu’un de compétent à un poste est promu (à un niveau supérieur). Le second est que quelqu’un d’incompétent à un poste n’est pas promu à un niveau supérieur.

Aussi, un employé ne peut pas rester à un poste où il est compétent (puisqu’il est promu) et à l  suite des promotions, il devrait finir par atteindre un poste auquel il sera incompétent, il ne recevra plus de promotion, il restera donc indéfiniment à ce poste (pour lequel il est incompétent). Moralité, tous les postes finissent par être occupés par des employés incompétents, et à un instant donné on arrive à la formule lapidaire annonçant que la majorité du travail est effectuée par des salariés n’ayant pas encore atteint leur “seuil d’incompétence“.

Bon, c’est un peu simpliste, supposant qu’il existe une relation d’ordre, en particulier qu’une personne bonne à un niveau donné serait forcément bonne aux niveaux “inférieurs”. Il existe en particulier un compétence définie en une dimension unique, et donc avec un ordre naturel,

  • Le papier de Pluchino, Rapisarda et Garofalo

Le papier d’Alessandro Pluchino, Andrea Rapisarda et Cesare Garofalo (en ligne ici) essayent de tester numériquement ce principe, et le valident. Ils font en particulier un test très intéressant sur la stratégie des promotions. Ils montrent – sous quelques hypothèses de modélisation – que la stratégie visant à promouvoir le “meilleur” n’ait pas forcément optimale, et qu’on peut avoir intérêt à avoir une stratégie mixte en retenant parfois le plus mauvais… avec un seuil de mélange proche de 50%. Cette stratégie peut aussi se voir comme un stratégie simple: soit on offre une promotion au meilleur,  soit on offre une promotion par tirage au sort…. et comme c’est un peu ce qui se passe dans les tournois de soccer (si on pense que s’en remettre au tir au but c’est s’en remettre au hasard) on a un moyen simple pour tester cette théorie….

  • Étude sur les matchs de coupe du monde de soccer

J’ai regardé les résultats sur les coupes du monde allant de 1982 à 2010, en phase finale, soit 8+4+2=14 matchs par coupe, sauf en 1982, où je n’ai que deux matchs. Soit 100 matchs en tout. A chaque match, soit le gagnant s’est fait sur le score (le vainqueur gagne) soit sur le hasard (aux tirs au buts). Et pour tous ces matchs, je regarde si l’équipe qualifié a gagné, ou pas, le match suivant. J’obtiens la matrice suivante,

matchs gagnant perdant total
au mérite 46 34 80
au hasard 4 16 20
total 50 50 100

Si on fait un test d’indépendance du chi-deux sur ce tableau de contingence, on obtient qu’il n’y pas indépendance entre les variables,
> M=matrix(c(46,4,34,16),2,2)
> chisq.test(M)
Pearson’s Chi-squared test with Yates’ continuity correction
data:  M
X-squared = 7.5625, df = 1, p-value = 0.00596
Autrement dit, le fait d’être gagnant – ou perdant – à un match (entre les quarts et la finale) dépend fortement de la manière dont on s’est qualifié… Promouvoir en faisant un tirage au sort ne semble donc pas vraiment optimal, l’équipe qualifiée par hasard ne passant souvent pas l’étape suivante… Mais je suis intéressé par toute analyse sportive de ce principe, donc si quelqu’un a des pistes, je suis preneur ! (car les données ne manquent pas)

70% des salariés français touchent moins de 1 500 € par mois ?

Hier, @Louisa_A me demandait de commenter l’information comme quoi “70% des salariés français touchaient moins de 1 500 € par mois“. Tout d’abord, rappelons que selon l’INSEE, en 2008, le salaire médian net en France est de l’ordre de 1655 € par mois pour un temps plein (cf ici par exemple). Comme c’est la médiane (je renvoie ici pour une bonne blague du nouvel obs sur la médiane, comme quoi il ne faut pas toujours croire ce qu’on lit), c’est que 50% des français touchent ce salaire, ou plutôt toucheraient ce salaire s’il travaillaient à temps plein…. Le hic est que généralement l’insee normalise les données, et ne parle que de taux plein…

Mais heureusement l’insee met aussi a disposition des bases, en particulier la base dads2007, ici, avec un fichier de 25Mo (zippé) , contenant près de 2 millions d’observations, dont le temps travaillé en 2007 et le salaire (ou plutôt une tranche de salaire). Le code est plutôt simple (même si j’ai travaillé sur la première moitié de la base, suite à des soucis d’importation sur mon petit portable),

> library(foreign)
> base=read.dbf("D:\\r-data\\salaries07.dbf")
> TRANCHE=c(0,100,300,600,1000,1300,2000,3000,
+ 4000,5000,7000,9000,11000,12500,14000,16000,
+ 18000,20000,24000,30000,1000000000)
> salinf=TRANCHE[1:20]
> salsup=TRANCHE[2:21]

Bref,
on peut récupérer des salaires médians, par temps plein (afin de voir si nos données sont représentatives), en notant qu’un temps plein c’est 1820 heures dans l’année (cf ici)

> Xinf=salinf[base$TRNNETO+1]/base$NBHEUR_TOT*1820/12
> Xsup=salsup[base$TRNNETO+1]/base$NBHEUR_TOT*1820/12
> quantile(Xinf,.5,na.rm=TRUE)
 50% 
1484.745 
> quantile(Xsup,.5,na.rm=TRUE)
 50% 
1685.185

Comme nous ne sommes pas trop loin des 1655 indiqués, j’aurais tendance à faire confiance à nos chiffres (en se plaçant proches de la borne supérieure d’ailleurs). Mais si on travaille sur le revenu, et pas le revenu pour un temps plein, les chiffres sont un peu différents,

> Xinf=salinf[base$TRNNETO+1]/12
> Xsup=salsup[base$TRNNETO+1]/12
> quantile(Xinf,.5,na.rm=TRUE)
 50% 
1333.333 
> quantile(Xsup,.5,na.rm=TRUE)
 50% 
1500

Pour revenir à nos moutons, si on s’intéresse à la proportion des français qui touchent moins de 1500 € par mois, j’obtiens

> mean(Xinf<=1500)
[1] 0.6118895
> mean(Xsup<=1500)
[1] 0.5236287

C’est à dire qu’à la louche, je pense que 55% des français touchent moins de 1500 € par mois. A condition que les chiffres soient en net. Si la citation parlait du brut, ça correspond en gros à du 1200 € par mois, et on a alors les proportions suivantes,

> mean(Xinf<=1500*.8)
[1] 0.4215607
> mean(Xsup<=1500*.8)
[1] 0.3143752

D’ailleurs un petite remarque sur ces histoires de revenu et de temps de travail. Si le temps travaillé par mois et le salaire horaire étaient des variables indépendantes, j’aurais pu faire des calculs rapides à partir de la distribution du temps de travail. Malheureusement, ces deux données ne sont pas indépendantes. Pour s’en convaincre, calculons le produit des espérances (salaire moyen horaire par temps moyen travaillé par mois) et l’espérance du produit (revenu moyen)

> Xinf=salinf[base$TRNNETO+1]/base$NBHEUR_TOT*1820/12
> Xsup=salsup[base$TRNNETO+1]/base$NBHEUR_TOT*1820/12
> mean(Xinf[Xinf<1000000000000],na.rm=TRUE)*
+ mean(base$NBHEUR_TOT/1820)
[1] 1609.669
> mean(salinf[base$TRNNETO+1])
[1] 16832.14

qui ne sont manifestement pas égaux. On a même un dépendance positive entre le salaire horaire et le temps de travail mensuel.  On retrouve ici le fait que les personnes qui effectuent les travaux avec les salaires horaires les plus bas sont aussi celles qui travaillent le moins. D’un point de vue technique, pour étudier les inégalités temps de travail/revenu horaire, c’est un peu compliqué à cause du produit. C’est pour ça qu’avec Stéphane Mussard on avait introduit la décomposition  des mesures d’inégalités pour des inégalités multiplicatives, ici. Mais on sort du cadre du papier, et ma réponse serait que non, je doute que la personne soit de bonne foi (la seule source que j’ai trouvé sur internet donnant ces chiffres était ici).

Comments on probabilities

The only thing I remember from courses I had in probability a few years ago is that we also have to clearly defined the event we want to calculate the probability. On the Freakonomics blog, last week, the Israeli lottery was mentioned (here, see also there where I mentioned that, and odds facts from the French lottery),

Yesterday, Andrew Gelman claimed (here) that there was a probability error… Well, since Andrew is really a statistician (and a good one… while I am barely an economist), I tried to do the maths…. and to understand where the error was coming from…

Since 6 numbers are drawn out of a pool of numbers from 1 to 37, the total number of combination at each lottery is

https://perso.univ-rennes1.fr/arthur.charpentier/latex/loto01.png
> (n=choose(37,6))
[1] 2324784

Over 8 lotteries (since there are two draws per week, we can assume there 8 draws per month), the probability of no identical draws is

https://perso.univ-rennes1.fr/arthur.charpentier/latex/loto02.png

Here is the R code for those who want to check, again,

> prod(n-0:7)/n^8
[1] 0.999988

Each month, the probability of “coincidence” (I define “coincidence” the event “over 8 draws, at least two times, we obtained the same 6-uplet” or more precisely (as mentioned here) “over one calendar month, at least two times, we obtained the same 6-uplet“) is

> (p=1-(prod(n-0:7)/n^8))
[1] 1.204407e-05

The occurrence of a coincidence each month as a Geometric distribution, with probability p. And it is classical, following Gumbel’s definition (here), to consider 1/p, called the “return period“, i.e. the number of months we have to wait until we observe a coincidence (i.e. a repetition in the same month), since for a geometric distribution

https://perso.univ-rennes1.fr/arthur.charpentier/latex/loto03.png
> 1/p/(12)
[1] 6919.034

Here, the (expected) return period is 6919 years.

From my point of view, this is “the incident of six numbers repeating themselves within a calendar month”, and this is an event of once in 6919.034 years. On the other hand the median of a geometric distribution is

https://perso.univ-rennes1.fr/arthur.charpentier/latex/loto04.png
> -log(2)/log(1-p)/(12)
[1] 4795.88

which means that we have 50% chance to get such a coincidence over 4796 years.

Of course, if instead of looking at a longer period, say 100 draws, i.e. one year (here I define “coincidence” the event “over 100 draws, at least two times, we obtained the same 6-uplet“), we have in red the expected return period, and in blue the median of the geometric distribution,

> M=E=rep(NA,100)
> for(i in 2:100){
+ p=1-exp((sum(log(n-0:(i-1)))-i*log(n)))
+ E[i]=1/p/(100/i)
+ M[i]=-log(2)/log(1-p)/(100/i)
+ }
> plot(1:100,E,ylim=c(0,10000),type="l",col="red",lwd=2)
> lines(1:100,M,col="blue",lwd=2)
> abline(v=8,lty=2)
> points(8,E[8],pch=19,col="red")
> points(8,M[8],pch=19,col="blue")

or below of a log-scaled version

As Xi’an did (here), assume now that there is a lottery over 100 countries. Here I define “coincidence” the event “over k lottery draws over 100 around the world, at least two times, we obtained the same 6-uplet“, and then the previous graph becomes (with on the x axis the level of k)

Here I have a 12% chance if we consider probability to have identical numbers over a month…

But here, we can have one 6-uplet in Israel, and the other one in Egypt, say… If we want to get the same 6-uplet in the same country, the graph is now

i.e. each month there is a chance over one thousand…

> i=8
> p=1-exp((sum(log(n-0:(i-1)))-i*log(n)))
> 1-(1-p)^100
[1] 0.001203689

Note: actually, Xi’an mentioned that the probability that this coincidence [of two identical draws over 188 draws] occurred in at least one out of 100 lotteries (there are hundreds of similar lotteries across the World) is 53%! And I got the same,

> 1-(1-P[188])^100
[1] 0.5305219

Lecture notes on risk and insurance

I just finished some lectures notes on risk and insurance. The notes, that can be downloaded [pdf], are in French, and will be used at the JES (Journées d’Etudes Statistiques), organised at the CIRM (mentioned here). Previous notes on risk measures [pdf] and copulas [pdf]. Again, all comments are welcome…

Names of villages, in France

Keith Briggs published a post here on names of English place name element distribution, which contains almost twenty maps like the one where names ends by -bourn,bourne,burn (here) or -head (there). Actually, it is possible (Robin mentioned that already here) to do similar things in France… Consider the dataset containing the 35,250 commune names (here), it is an xls file containing the official name, the latitude, and on the longitude. To start with something simple, it is possible also to look at village containing “saint” in it

There are a lot, and there is no obvious geographic trend. For some simple geographic trend, t is possible to see where are villages having a name ending with “sur mer” (meaning literally “on the sea”) below on the left. Obviously, we cannot find such places in the Alps. Similarly for names ending with “Seine” they are clearly on the Seine river, on the right

> ville=read.table("D:\\r-data\\ville.csv",sep=";",header=TRUE)
> nrow(ville)
[1] 35376
> ville$maj=as.character(ville$Nom.Ville)
> n=nchar(ville$maj)
> I=substr(ville$maj,pmax(0,n-8),n)
> Ind=I=="-sur-Mer "
> sum(Ind)
[1] 98
> library(maps)
> map('france', fill = FALSE)
> X=ville[Ind,]
> x=as.numeric(as.character(X$Longitude))
> y=as.numeric(as.character(X$Latitude))
> points(x,y,pch=19,col="blue",cex=.6)

In order to continue with some geographic pattern, consider the end of the names, such as “-gny” (below on the left, in red) or “-ac” (below on the right, in blue)

Some pretend that “-ac” comes from Gaelic, and can be found in Celtic regions (here in Brittany). Obviously, there is also an origin in Occitany (south west of France). And this gave also in Oïl region the “-gny” (in North and North-East regions). Consider similarly end of the names, such as “-an” (below on the left, in red) or “-ey” (below on the right, in blue)

Still about the end of the names, it is also possible to look for village ending either with “-a” (below on the left, in red) or “-o” (below on the right, in blue)

We are now in the southern part of France…. “-a” in Corse and Pyrénées, while “-o”can be found in Corse, and in Brittany. For the beginning “ker-” or “lan-”  (below on the left, in red) or “castel-” (below on the right, in blue),

“ker-” appears in 18,000 location names (as mentioned here) but only in some village names. It is similar to “castel-” in the southern part of France.
To go a bit further, 40 years ago, Georges Brassens sang a song entitled “La ballade des gens qui sont nés quelque part“.

He says that people are usually extremely proud of their villages…. Actually, their are more people proud of living over something than under something: below are villages containing “sous” (i.e. under below on the left, in red) or “sur” (i.e. over below on the right, in blue)

On the other hand, villages containing “grand” or “grande” (i.e. tall or big below on the left, in red) or “petit” or “petite” (i.e. small below on the right, in blue) seem to be correlated: close to a city with “grand” there is a village with “petit” in it. For instance Virieu-le-Grand and Virieu-le-Petit, or  Essigny-le-Grand and Essigny-le-Petit.

And finally, I found surprising to see so many village containing “montagne” (ie mountain below on the left, in orange) or starting with “Mont” (below on the right, in purple) that are far from mountains,

You do not need to live close to some mountains to get mountains in it. Even in Brittany you can find dozen of villages starting with “Mont”….