[Geekery] Dodging 9s

Today I found via FiveThirtyEight a riddle about arithmetic progressions: it’s called “Dodging 9s”. The question is to find the longest arithmetic progression (which means a collection of numbers in which each number is equal to the precedent plus some constant number (called the common difference), for instance 4 7 10 13 16) in which there is no 9 in any number. The repartition of the integers which contain a 9 is shown in the following figure, where the first row is 1 to 100, the second 101 to 200 and the last 9 901 to 10 000.

This repartition leads me to think that the progression must be built around the idea that it should avoid the black areas by making a “jump” over the portion of the integers which contains a 9. For instance, the progression 8 32 56 80 104 128 152 176 200 224 248 272 avoids the 90s and the 190s (but not the 290s, sadly). In order to determine the best progression, I will use R to calculate the length of the acceptable progression for multiple starting points and common difference. The following functions use regex in order to compute the length of the longest acceptable progression with these parameters:

nine  0) {return(1)}
  else {return(0)}


Using this function on values bewteen 1 and 10 000 for the starting point and the common difference of the progression allows us to determine the maximum length achievable (within these parameters!). It appears that the longest one is the progression starting at 1 with a common difference of 125, which is :

1  126  251  376  501  626  751  876 1001 1126 1251 1376 1501 1626 1751 1876 2001 2126 2251 2376 2501 2626 2751 2876
3001 3126 3251 3376 3501 3626 3751 3876 4001 4126 4251 4376 4501 4626 4751 4876 5001 5126 5251 5376 5501 5626 5751 5876
6001 6126 6251 6376 6501 6626 6751 6876 7001 7126 7251 7376 7501 7626 7751 7876 8001 8126 8251 8376 8501 8626 8751 8876

and which is represented in the following graph by the grey tiles:

Adding one more term to the progression leads to 9001, which obviously contains a 9. This little exploration is of course no proof of any maximum length, but it shows that my hypothesis of some “jumps” over the 9 areas wasn’t wrong!

[Sports] Don’t miss a shot in biathlon races

Today, I want to speak about my favorite sport to watch on TV, which is biathlon (the one which involves skiing and shooting at things. Who doesn’t love that?). I really enjoy to follow the races, and not only because the best athlete at this moment is a french one (go Martin!), but because the shooting part seems so crucial and stressful. This leads me to wonder about how much missing a shot is relevant for the ranking in the end of the race. Let’s find out!


Gathering some data

My idea is to do some basic analysis on data about the results of many biathlon races, in order to evaluate if there is some form of correlation between the final ranking and the number of shot missed. This requires to first gather the data. The results are stored on multiple sites: obviously Wikipedia pages of the championships, but this website is much more detailed. I’m going to use some of the results between 2007 and 2015. I won’t use all of the races because I want to have comparable results: I’m going to only consider the races where the number of competitors is between 50 and 60. This allows me to interpret the results about final ranking with a similar scaling system for all the races. Moreover, the specificity of biathlon is that the rules are very different from a format to another (see this Wikipedia article for more informations), and I can’t easily discriminate my data between them. Using a limitation on the number of participants is a way to limit the width of the spectrum of formats considered. Well, let’s forget these technicalities and analyse the data!

Don’t miss a shot!

So, the idea is to put in regard the number of shots missed and the final ranking. Fun fact: the number of shot during a race is 20, but the maximum number of shot missed during a race I analysed is only 9. That’s not really a surprise if you frequently watch biathlon, because missing that much shots usually means that you’re going to finish in last place. I’m going to use a heat map in order to show the correlation. An heat map is a form of 2D data vizualisation which is based on a spectrum of colors. Thedarker the color is, the more important the value is. The idea here is to put in rows the final ranking, and in columns the number of shots missed. Here is what we obtain:

Miss a shot

There results directly show that:

  • There is a clear diagonal on the heat map. This isn’t really surprising: that means that everytime an athlete misses a shot, his final ranking goes lower. This is our first result: missing shot are penalties. What a surprise!
  • There is also a very dark blue area in the first column, at the top of the diagram. This means that most of the time, doing a clear round leads to a very good ranking in the end.
  • But it is clearly possible to win a race while missing some shots! The first row is filled with dark blue in the first few columns.

Don’t miss a prone shot!

As you may know, there is two different types of shooting during a biathlon race: the prone shot, where the athletes are lying on the floor; this position helps them to stabilise their aim. The other type is the standing shot, which is much more difficult. Therefore, it might be interesting to deal with the two phases of shooting separately. Let’s start with the prone shot, as this is usually the first phase of shooting during a race.

Prone shot

We see the same pattern as the total of shots. The top of the first column is much darker than before: this is because of two things. First, it is usual that a lot of athletes don’t miss a shot during the prone shot phase. And that means that missing a prone shot is much more a sign of a bad shooting, which leads to a bad ranking at the end. This point is very important: we’re not evaluating results in a vacuum: and missing a shot usually means that the athlete is in a bad shape compared to the others, and therefore has a bad ranking. But this also means that missing a shot during the first phase raise the odds of missing shots during the other phases.

Let’s have a look at the heat map for the standing shots.

Standing shot

As expected (because the initial one is the combinaison of these two heatmap), we’ve a much more dispersed heat map. Missing a standing shot is something that happens to pretty much everyone, even the best athletes.

Is the starting order relevant?

I add to the analysis a last factor: the starting order, which is linked to the expectation of results of the athlete (based on a global ranking, or on the results of another race). The heat map showing the correspondances bewteen the final ranking (still in rows) and the starting order (in columns) shows a clear diagonal line: the expectation seems relevant.

Starting order

In order to do a much more indepth analysis, I’m going to perform a linear regression on these variables. I want to know if the final ranking is explained by the initial order, the number of prone shots missed and the number of standing shots missed. This linear regression will also help me to evaluate how big of an impact these three variables have on the final outcome. Let’s have a look at the results:

lm(formula = ranking ~ prone shots  + standing shots + starting order)

    Min      1Q  Median      3Q     Max 
-60.625  -8.483  -0.101   9.268  45.295 

                  Estimate  Std. Error  t value   Pr(>|t|)    
(Intercept)       5.816571   0.212517   27.37

The three variables of the model are statistically significant, which means that they do have a relation with the final ranking. Understanding the coefficient for the Starting Order is kind of tough, but the two other coefficients are much more easier to analyse:

  • When you miss a prone shot, you lose about 5 places at the end of the race
  • When you miss a standing shot, you lose about 1 place at the end of the race

Obviously, these results are only valid on average. But this is kind of a fun way to comment biathlon shootings! “Oh, you just lost 10 places!”.

[Sampling] Combien de salons de coiffure ont un jeu de mots dans leur nom ? (Première partie)

Nous connaissons tous une boulangerie, ou un salon de coiffure, qui a un jeu de mots dans son nom (“L’Hair du temps” ?), mais est-ce vraiment si répandu ? Essayons de répondre à cette question. Il y a plusieurs manières d’aborder ce problème : utiliser une approche de type apprentissage (mais il n’est jamais simple de faire comprendre l’humour à un ordinateur, et nous discuterons de cela plus tard), ou une approche de type sondage (ce qui sera fait dans un premier temps, dans cet article).

L’idée derrière cette approche consiste à se dire que juger la totalité des noms des salons de coiffure serait assez long (il y en a plusieurs dizaines de milliers) et que l’on va donc seulement s’intéresser à un petit échantillon (qui ne sera pas “représentatif” !) sur lequel on fera le travail de juger si le nom correspond à un jeu de mots ou pas.

Quelques considérations pratiques tout d’abord : nous avons un jeu de données composé de 30 083 entreprises françaises dont l’activité principale est dans le domaine du 9602A, ce qui dans le monde merveilleux des nomenclatures de la statistique publique, signifie que ce sont des entreprises dans le domaine de la coiffure, donc des salons de coiffure. On va également considérer qu’une taille raisonnable pour le travail de détection des jeux de mots est de prendre n = 200.

Première tentative

Nous allons donc extraire un échantillon de 200 SIREN de notre base, en utilisant un sondage aléatoire simple pour les choisir. Qu’entend-on par sondage aléatoire simple ? Comme son nom l’indique, il s’agit d’une technique basique de sondage qui repose sur deux postulats : on peut sélectionner tout le monde avec la même chance, et on veut aboutir à une taille fixe. Une représentation possible de ce type de sondage consiste à imaginer une urne avec les 30 083 boules qu’on mélange, puis on extrait une à une des boules jusqu’à en avoir le nombre souhaité, ici 200. Ce type de sondage est facile à mettre en pratique ; et il est facile d’utiliser les résultats obtenus pour avoir une estimation sur la population totale, et même une idée de la précision de cette estimation. On peut se référer au cours suivant pour une présentation plus détaillée.

Nous avons donc suivi ce plan de sondage, et nous avons un échantillon de 200 noms de salons de coiffure. Il reste maintenant à analyser les résultats pour détecter les jeux de mots : cette phase est forcément subjective, mais j’ai essayé ici de prendre la définition la plus large possible de jeu de mots, c’est à dire à chaque fois qu’il peut y avoir un double sens ou un jeu sur la prononciation de mots. Regardons plutôt quelques exemples trouvés dans l’échantillon :

Atmosp’hair, Posi’if, Aux mains d’argent, L’art de Pl’Hair, Diminu Tif, FauTif’Hair…

J’arrive au total à 13 jeux de mots, ce qui nous donne un pourcentage de jeux de mots de 6,5% parmi les salons de coiffure. L’utilisation d’un sondage aléatoire simple permet de garantir que cette estimation est sans biais (c’est un estimateur d’Horvitz-Thompson (en) du ratio), c’est à dire que, en moyennant sur tous les échantillons que l’on peut obtenir, on obtient la vraie proportion sur la population totale des salons de coiffure. Cela signifie en particulier que l’estimation que nous avons est fiable.

Cependant, cela ne signifie pas qu’elle est précise ! Prenons un exemple simple. On a deux individus A et B, avec une valeur de 0 pour A et de 100 pour B, et que l’on veut estimer la moyenne des valeurs dans la population, qui vaut 50. Lorsque l’on réalise un sondage aléatoire simple d’un individu parmi les deux, nous allons avoir la moitié du temps A et donc une estimation de 0, et la moitié du temps B et une estimation de 100. Cela donne bien 50 en moyenne : pourtant dans une réalité où l’on ne peut pas répéter le tirage des échantillons, on aurait juste l’observation de B (par exemple), et donc un estimateur de 100. Cette estimation est très imprécise : cela vient de la faible taille de l’échantillon (1 n’est pas suffisant), et de la très grande hétérogénéité de la population (si A avait une valeur de 1 et B de 2, on serait plus proche de la vérité). On peut aussi voir, en anglais, l’exemple des éléphants de Basu (en), bien connu des étudiants en théorie des Sondages.

Il existe une formule permettant de calculer la variance de l’estimation. On peut se référer par exemple aux slides 60 et suivantes de cette présentation. Globalement, dans le cas d’une proportion, la variance vaut à peu près :

Variance = Proportion * (100% – Proportion) / Taille de l’échantillon

À partir de ce résultat, on peut calculer un intervalle de confiance pour la vraie valeur de la proportion. Il suffit d’enlever et d’ajouter 1,96 fois la racine carrée de la variance. L’intervalle obtenu donne un ensemble de valeurs pour lesquelles l’observation qu’on a, c’est à dire la valeur obtenue sur l’échantillon, n’est pas trop improbable ; on considère ainsi qu’il est possible moins de 5 fois sur 100 pour une vraie valeur hors de cet intervalle d’obtenir un tel résultat.

L’application de ces méthodes ici donne l’intervalle de confiance suivant : [3.1% ; 9.9%]. Il est assez large, car d’une part la taille de l’échantillon est assez faible, et d’autre part la proportion estimée est faible, ce qui a tendance à réduire la précision des estimations : un caractère rare dans une population est difficile à détecter, et n’apparaît pas si souvent dans l’échantillon, donc l’information collectée reste assez faible.

Adaptons le sondage

Même s’il est possible d’être assez déçu par le résultat obtenu à l’aide de ce premier échantillon, il ne faut pas désespérer. En effet, il est toujours possible d’améliorer un plan de sondage une fois que l’on a collecté un peu plus d’informations. Ici, il est possible de faire une remarque générale sur les jeux de mots trouvés : la plupart d’entre eux contiennent soit le mot “Hair”, soit le mot “Tif”. Il est fort probable que l’on trouve plus de jeux de mots dans les salons dont le nom contient un des deux mots que dans la population générale. Nous allons utiliser cette nouvelle information pour réaliser un sondage stratifié (voir ce cours pour plus d’informations).

Pour reprendre l’analyse développée dans la partie précédente, avec une urne remplie de 30 083 boules, il va s’agir ici de séparer a priori, sur un critère connu (qui sera ici la présence ou non du mot “Tif” ou “Hair” dans le nom) les boules entre deux urnes, pour ensuite en tirer un certain nombre dans la première urne puis, indépendamment, un certain nombre (qui peut être différent du premier) dans la seconde urne.

Il ne reste qu’à séparer les 200 salons de coiffure entre les deux catégories, dites strates : la strate 1, qui regroupe les 2 603 salons de coiffure avec “Hair” ou “Tif”, dans laquelle on suppose qu’il y a environ la moitié de jeux de mots, et la strate 2 des autres salons de coiffure, dans laquelle on va supposer qu’il y a 1% de jeux de mots. Ces suppositions permettent de calculer des allocations, c’est à dire le nombre d’unités à tirer dans chaque strate, en utilisant la technique dite de l’allocation de Neyman (slide 61 de cette présentation). Cette allocation, classique en sondages, vise à maximiser la précision de l’estimateur obtenu à la fin, en prenant plus d’individus dans les strates avec une forte variance, ce qui est ici le cas de la strate 1 ; en effet, il y aura à peu près autant de jeux de mots que de non jeux de mots, alors que dans la strate 2 ce sera principalement des noms sans jeu de mots, donc assez peu variés.

Le résultat obtenu ici consiste à tirer 141 salons de coiffure de type 1 et 59 salons de coiffure de type 2. On réalise alors un tel tirage. Les résultats obtenus sont de 68 jeux de mots dans la première strate, et de 1 jeu de mots dans la seconde : “C’est dans l’ère”, assez proche du thème classique de Tif et Hair, mais avec une autre graphie !

Ici, il n’est évidemment pas possible d’extrapoler le résultat à la population totale en disant que la proportion de jeux de mots est de 68+1 sur 200, soit 34.5%. Il faut pondérer les résultats obtenus par la part que représente chacune des strates :

Estimation de la proportion = % de salons dans la strate 1 * proportion de jeux de mots dans la strate 1 + % de salons dans la strate 2 * proportion de jeux de mots dans la strate 2

ce qui donne ici 2603/30083*68/141 + 27480/30083*1/59 = 5,7%. On est bien dans l’intervalle de confiance obtenu tout à l’heure, ce qui est plutôt encourageant. Mais quelle est la précision de ce nouvel estimateur ? Pour cela, on utilise le même type de formule de calcul de variance pour chacune des strates :

Variance_Strate = Proportion_Strate * (100% – Proportion_Strate) / Taille de l’échantillon_Strate

puis on combine ces résultats pour avoir la variance de l’estimation :

Variance = (Part strate 1)² * Variance_Strate_1 + (Part strate 2)² * Variance_Strate_2

et enfin, on construit l’intervalle de confiance de la même façon que précédemment. Nous obtenons ici [4,1% ; 7,3%] qui est plus resserré que celui obtenu au début : nous avons bien amélioré la précision de notre estimation !


Ainsi, en utilisant un sondage intelligent, basé sur l’étude de certaines caractéristiques des jeux de mots dans les salons pour la stratification, nous arrivons au résultat que parmi les 30 083 salons de coiffure, il y en a environ 1 700 dont le nom comporte un jeu de mots, plus ou moins 500, soit très probablement entre 1 200 et 2 200.

[Sports] Why favourite tennismen win even more than they should

Today, I’d like to write a short note to begin to answer one simple question: which sport is the most conservative? By conservative I mean a sport where the favourite team or athlete wins much more often than the other. As this is quite a large problem, which had been adressed for NFL, I’ll start with some results about some racquet sports, tennis and badminton. I won’t use real data but rather focus on some simulations in order to evaluate the chances to win a match when you’re the #1 tennismen against less talented players.

Game, Set, Match

I won’t explain the rules of scoring in tennis matches, but I’d like to remind you some of the basic principles. To win a tennis match, you need to win 2 or 3 sets. Each set requires you to win at least 6 games, but also two more games than your opponent. And to win a game, you need to score 4 points AND 2 more points than your opponent. These rules mean that a tennis match can last almost forever but as they are very restrictive, they also favor the most efficient player. Let’s have a simple example to understand that.

Let’s say Adam and Becky play a game where they have to score 2 points in 3 rounds. Becky plays way better and has a 90% chance to win each point. The probability of Becky winning is 0.9*0.9 (she wins the first two rounds) + 0.9*0.1*0.9 (she wins round 1, loses round 2 but wins round 3) + 0.1*0.9*0.9 (she loses round 1, but wins rounds 2 and 3), which sums to 97.2%, therefore Adam has a 2.8% chance to win at that game. That is pretty low.

What happens if we add the ‘tennis’ rule of “2 more points than your opponent” ? The game becomes “the first one to score 2 points in a row win”. The maths needed to get Becky’s changes of winning are a little more complex in this example: one way to deal with that problem is to think about the first two rounds. After these two rounds, there is 81% that the winner is Becky, 1% that it is Adam, and 18% that no one has won yet. If we repeat this process, we get a geometric series which sums to approx. 98.8%. Adam’s chances of winning have dropped even more: only 1.2% now!

Let’s go back to Tennis

Now Becky and Adam are tired of playing a game Adam always loses, and they decide to go outside in order to play some tennis. Suppose that Adam is better at this sport than Becky. A conservative hypothesis is to suppose that he’ll win 51% of the time, while she’ll win only 49% of the time. The difference is fairly minor, and that shouldn’t have a big impact, right?

I write a short program in R which simulates thousands of matches in order to know who wins between the two players. The program is quite simple, here is the part about simulating a game :

 win_a_point <- function(advantage) {
  x = runif(1,0,1)
  if (x > advantage) {return(2)}
  else {return(1)}

gagne_jeu <- function(advantage) {
  score = c(0,0)
  while ((max(score) < 4) | (abs(score[1]-score[2]) < 2)) {
    x = win_a_point(advantage)
    score[x] <- score[x] + 1
  if (score[1] > score[2]) {return(1)}
  else {return(2)}

The results obtained for 100.000 matches (in 3 winning sets) simulated are compiled in this tabular:

Point Game Set Match
51% 52.5% 58.4% 63%

Another interesting result is the following graph:


Even if the edge for the better player is as low as 5 percent (55-45 for each point), the match is clearly one-sided. This means that as long as one player have a predominant position and so a little more chance to win each point than his opponent, he is almost assured to win at the end. That makes tennis a very conservative sport!

What about Badminton ?

In order to compare this result to some benchmark, I run the same simulations about Badminton. The rules are quite different but not so much, as it is required to get to 21 points in order to win a game, with at least a two-points lead. Winning a match requires to win two games before your opponent does so. With a small adjustment, I use the same program as before and the results obtained are compiled in this graph:


To conclude, compared to Badminton, Tennis is definitely a conservative game!

[Sampling] De l’instantanéité des sondages

Ces derniers jours une application de “sondages” fait beaucoup parler d’elle dans les médias traditionnels : elle agacerait les instituts de sondages – je ne sais pas pour eux, mais ça nous a plutôt désespéré – et serait un baromètre de l’opinion pour les Républicains avant leur primaire – contrairement aux apparences, nous parlons d’une application française, GOV.

Cette application permet deux choses : tout d’abord, un peu à la façon d’un Tinder de la politique, les utilisateurs peuvent donner une opinion positive ou négative à propos de certaines personnalités politiques, souvent nationales : le Président, Manuel Valls, Christiane Taubira, Marine le Pen, Nicolas Sarkozy, Alain Juppé… Il est également possible de proposer des questions – des débats – auxquels les autres utilisateurs peuvent répondre en indiquant leur accord, avec un +, ou leur désaccord, avec un -. Ces débats peuvent concerner différents sujets : la politique, évidemment, mais aussi la société, la religion, les technologies…

Dernière précision : après téléchargement de l’application, un compte utilisateur doit être créé. On nous demande pour cela un pseudonyme, une adresse mail, puis de spécifier notre sexe, notre département, notre date de naissance et (de façon optionnelle) notre orientation politique, de l’extrême droite à l’extrême gauche en passant par le centre.

Tout cela est bien sympathique ; mais nous ne croyons pas une seule seconde aux résultats obtenus par cette application. Nous allons expliquer par la suite pourquoi nous n’y croyons pas, mais aussi donner quelques pistes d’améliorations pour chacun des problèmes, parce que nous n’aimons pas laisser notre prochain dans l’embarras.

Vérifier les utilisateurs

Commençons par le commencement. Si l’on souhaite avoir une information sur une population, par exemple combien de personnes en France ont une opinion positive de François Hollande, il faut commencer par s’assurer de deux choses sur la population : que l’on interroge bien des personnes qui existent et que ces personnes sont dans la population d’intérêt. Ici, il faudrait vérifier que les gens sont bien en France – cela n’a pas l’air d’être le cas, mais peut-être que les magasins d’applications bloquent le téléchargement hors de France, donc accordons le bénéfice du doute à l’application. La deuxième question est bien plus compliquée, car on ne peut pas demander un papier d’identité à tous les utilisateurs, mais elle est généralement réglée de deux manières différentes : soit en utilisant un autre service comme identifiant – Google, Facebook, etc – ce qui est une possibilité ici, soit en demandant une adresse mail pour y envoyer un mail afin de valider l’inscription, ce qui permet de montrer que ce n’est pas un robot qui vote. Cela laisse le problème de l’unicité, car une personne peut avoir plusieurs adresses mail, mais cela le limite néanmoins : les gens ont une dizaine d’adresses mail au maximum, ce qui ne suffira pas forcément à perturber les résultats.

Que se passe t-il sur GOV ? Eh bien, j’ai pu me créer le compte suivant afin d’aller donner mon avis sur François Hollande. Et si j’avais voulu, j’aurais pu me créer les comptes miaou1@miaou.fr à miaou99999@miaou.fr en automatisant le processus pour aller voter 100000 fois en faveur de François Hollande, pour perturber les analystes politiques de notre pays.


Comment pallier ce problème ? A minima, demander une validation par mail pour éviter l’utilisation d’adresses mail stupides comme la mienne, et si possible trouver un moyen d’éviter les doublons – authentification via adresse de téléchargement de l’application, par exemple.

Changer de sexe – et de date de naissance ?

Le but de l’application n’est pas uniquement de connaître ce pourcentage de votes positifs sur la France entière, il y a également des résultats pour certaines sous-populations : les hommes et les femmes, principalement, sur chacun des départements français, ainsi que selon les orientations politiques. Je n’ai pas trouvé de résultats par âge, mais j’imagine que cela pourrait arriver. J’ai donc renseigné mes informations de façon tout à fait sérieuse. Aujourd’hui, je serai donc une jeune femme de 19 ans vivant à Blois et activement en faveur de l’extrême droite.

Loir et Cher

Aucune de ces informations n’a été vérifiée. Cela peut sembler normal pour l’orientation politique : le vote est secret, et c’est de toute façon facultatif. Mais le sexe, la date de naissance, la position géographique ? Nous pouvons faire encore mieux. Ce(tte) “miaoumiaou” va pouvoir changer d’avis sur la politique (aucun problème), déménager de Blois à Mérignac (cela arrive régulièrement), de sexe (admettons !), mais aussi de date de naissance (???).


Comment pallier ce problème ? Il faut récupérer les informations à partir d’une source plus fiable : par exemple, les profils sur les réseaux sociaux. En revanche, les questions de modification des caractéristiques des personnes sondées sont toujours un problème difficile. Il convient de distinguer celles qui ne peuvent pas changer (sauf cas exceptionnels) : sexe, date de naissance… Pour ces caractéristiques, on peut interdire les changements ou à la limite accorder un changement, mais une seule fois. Pour les autres caractéristiques telles que la ville de résidence ou les opinions politiques, les modifications doivent être autorisées, mais il faut une limite aux modifications : je peux changer d’avis politique toutes les deux heures sur GOV, et ainsi les résultats n’ont aucune valeur.

Combien sommes-nous ?

Si l’on en juge par les classements qui se trouvent dans l’onglet Profil, nous étions dans les 10 000 meilleurs après quelques votes, on peut donc estimer que le nombre d’utilisateurs de l’application est entre 10 000 et, allez, 20 000. Cela représente un nombre suffisant pour avoir un avis sur une question si tout le monde y répondait, mais vu le nombre de personnalités politiques et de débats présents sur l’application, cela n’est pas une hypothèse crédible. Un premier problème est donc que les résultats obtenus ne sont pas suffisamment précis : on voit dans l’image ci-dessous que 245 personnes ont voté dans les dernières 24h sur le débat que nous avons créé, ce qui n’est absolument pas suffisant pour avoir l’information pour la totalité de la population française. Mathématiquement, cela veut dire que la variance de notre estimateur est trop forte : 76% des répondants croient aux statistiques de l’INSEE, mais on ne peut rien en déduire de plus précis que ceci : “entre 65% et 87% des français croient aux statistiques de l’INSEE”. Sauf que c’est faux, parce qu’il y a des biais induits par la réponse ou non, mais nous en parlerons plus tard.


Et pour “ajouter l’injure à l’insulte”, comme on dit chez les jeunes, l’application nous propose même les résultats ventilés selon les différentes orientations politiques. Par exemple, pour la question sur l’INSEE que nous avions posé, nous avons les résultats suivants.


Nous voyons bien l’intérêt de ce graphique : on aurait envie de dire que les français partisans des partis traditionnels (Gauche, Droite) ont plus confiance dans les institutions et donc dans l’INSEE que ceux des partis d’extrême droite et gauche. Et bien cette analyse n’a absolument aucun fondement. Pourquoi ? Car non seulement comme évoqué précédemment il n’y a pas assez de répondants pour avoir une estimation précise, mais surtout parce qu’on ne sait pas comment sont répartis les répondants au sein des catégories. On sait uniquement que 100% des votants d’extrême droite ne croient pas aux statistiques de l’INSEE, mais on ne sait pas si cela représente 1, 5 ou 50 personnes. On ne peut donc rien en déduire.

Comment pallier ce problème ? À part évidemment attendre qu’il y ait plus de monde (certains débats ont moins de 10 votants, donc autant dire absolument aucune valeur), il serait possible d’au moins d’afficher les effectifs pour toutes les sous-catégories pour avoir une idée de la répartition des votes.

J’ai changé d’avis !

Si vous avez bien suivi, le point précédent n’aurait pas dû être un problème. Il y a plus de 10000 comptes d’utilisateurs inscrits, donc pourquoi est-ce que la plupart des débats et des hommes politiques sont aux alentours de 250-500 “govs”, avec peut-être 1000 au maximum ? Cela vient du fait que le compteur qui est communiqué aux utilisateurs ne concerne que les votes dans les dernières 24 heures, ce qui explique pourquoi le nombre n’augmente pas au fur et à mesure. Pourquoi avoir fait ce choix ? Cela est probablement lié au concept d’instantanéité, car il est possible de revoter toutes les 24 heures pour suivre au plus près l’actualité politique.

Il est donc possible de redonner son avis. Cela veut dire qu’il est possible d’en changer ou de garder le même d’un jour sur l’autre, et cela veut aussi dire que potentiellement les 500 “govs” sur certains sujets proviennent des mêmes personnes d’une journée sur l’autre. Que peut-on déduire de l’évolution sur l’image suivante ? (Réponse : rien.)

Ségolène Royal

Comment pallier ce problème ? Ce n’est pas forcément un problème, certains sondages sont réalisés de cette manière, ce sont les études en panel ou cohorte : on interroge les personnes à des dates différentes, et on s’intéresse à l’évolution entre ces différentes dates. Le fait de réinterroger les mêmes personnes permet de limiter l’aléatoire et donc d’avoir des résultats plus précis que de re-choisir au hasard des individus. Cependant, il faudrait alors être sûr que les individus sont bien toujours les mêmes, et cela n’enlève rien au problème lié au nombre de répondants ou aux autres problèmes qui arrivent dans la suite de l’article.

Comment vote t-on dans le Loir-et-Cher ?

Eh bien, par exemple sur notre question les résultats dans le département (initial) de miaoumiaou sont les suivants. Les barres en gris clair signifient qu’aucun répondant n’est de cette orientation politique dans ce département.

Vote dans le département

Je pense qu’il n’y aura pas besoin d’un grand discours pour en conclure que c’est totalement inutilisable.

Comment pallier ce problème ? Il ne faut pas diffuser d’information à un niveau aussi fin, et se limiter par exemple à un Paris/Province, ou au moins par région.

Je ne suis pas intéressé par la religion

Sur l’application GOV, il est possible de choisir pour qui et quoi on vote. Par exemple, si je ne suis pas du tout intéressé par les questions sur la religion, il me suffit de parcourir uniquement les autres catégories de débats et je n’aurai pas à donner mon avis sur les questions sur le sujet. Cela pourrait ne pas être grave, mais cela pose un problème assez classique en sondages et plus largement en théorie des comportements. C’est celui de la non-réponse non-ignorable. Prenons un exemple.


Cette question est déséquilibrée : les individus auront des tendances à vouloir répondre qui sont différentes selon leurs caractéristiques. Raisonnons de façon schématique. Si je suis fumeur, j’ai envie d’indiquer que je suis contre le paquet plus cher. Si je ne suis pas fumeur, j’ai moins d’intérêt dans la question, mais peut-être que je veux arrêter le tabagisme passif et donc que je suis pour. En moyenne, les fumeurs répondront plus souvent que les non-fumeurs. Le résultat final est alors biaisé en faveur du non, et donc pas directement exploitable !

Comment pallier ce problème ? Il y a deux manières différentes de s’attaquer à cette problématique. La première, c’est de ne pas laisser ce choix et de “forcer” les individus à répondre aux questions qui leur sont soumises, par exemple aléatoirement : l’inconvénient est que cela limite la convivialité de l’application, et cela n’empêche pas les gens de quitter l’application et de ne pas répondre de toute façon quand ils ne sont pas intéressés. L’autre solution c’est d’utiliser les caractéristiques socio-démographiques et les profils de réponse des individus pour corriger de la non-réponse, par exemple dans notre exemple analyser qui est fumeur et non-fumeur pour rétablir l’équilibre des réponses, et s’approcher du “vrai” pourcentage d’avis pour le paquet à 10€.

Le “calage” des réponses

Je vais essayer d’éviter d’utiliser le mot “représentatif” dans ce paragraphe ! Les individus inscrits sur l’application GOV ne sont pas nécessairement un portrait de la population française. Par exemple, il n’y a peut-être pas 50% d’hommes et 50% de femmes, et probablement trop de jeunes par rapport à la vraie pyramide des âges de la population française. Or, tout individu de plus de 50 ans qui vote sur l’application a le même impact qu’un jeune, ce qui ne permet pas d’avoir des résultats sur la population entière.

Comment pallier ce problème ? Il est possible d’utiliser des techniques dites de calage sur marges, c’est à dire d’adapter l’impact des votes des individus en fonction de leurs caractéristiques socio-démographiques pour faire en sorte que ceux minoritaires parmi les inscrits aient un poids plus important que les autres. Cela permettrait ainsi de conclure à partir des inscrits à GOV sur la population entière.

J’adore donner mon avis !

Il reste un problème encore plus important que ce qui a été mentionné dans les deux points précédents. En effet, le fait de télécharger ou non cette application est en soi une décision raisonnée d’un individu, et donc ce choix dépend de ses caractéristiques. On peut imaginer par exemple que les individus les plus politisés auront envie de donner leur avis sur les personnalités politiques plus souvent que les autres, ce qui crée également un biais non-ignorable sur les résultats. Le problème, c’est que la question de la politisation n’est pas forcément facilement déductible des caractéristiques socio-démographiques, et que donc les techniques de calages ne suffisent pas.

Comment pallier ce problème ? Il existe quelques méthodologies assez avancées permettant de résoudre le problème, mais la méthode la plus simple consiste soit à interroger quelques personnes sur leur utilisation ou non de l’application pour connaître les caractéristiques qui font que l’on a envie de voter sur GOV, ou de réaliser une expérience aléatoire, en demandant aux gens par exemple dans le cadre d’un sondage par téléphone ou dans la rue de répondre à un débat de GOV, puis en comparant le résultat obtenu avec celui de l’application.

Conclusion (TL;DR)

Les résultats affichés par l’application GOV ne sont pas crédibles car ils souffrent d’un manque de sérieux concernant le champ des personnes interrogées, d’un manque de précision et de biais relatifs aux caractéristiques des utilisateurs par rapport à la population. Cependant, le concept est intéressant, et avec quelques modifications comme celles que nous avons suggérées dans cet article, il serait tout à fait possible d’aboutir à des résultats sérieux. On verra ce qu’il en sera dans une éventuelle version 2 ?

[Games] Pourquoi la France perd toujours à l’Eurovision ?

Spoiler alert : C’est parce que nous sommes directement qualifiés en finale alors que la plupart des autres pays sont sélectionnés en demi-finale.

“L’Eurovision c’est un concours européen de chanson et à la fin c’est la France qui perd”

Cette année a beau avoir été meilleure pour la France à l’Eurovision que la précédente, de nombreux articles n’ont pas manqué de souligner la contre performance de la représentante française à Vienne. Celle-ci (qui, selon ses propres mots, “a les boules”) a terminé à la 25ème place sur 27, avec un score de 4 points, tandis que la Suède finit première avec 365 points. C’est assez décourageant, mais nous allons voir ici que cela est entièrement dû aux règles de qualification et pas à France 3.

Un bref rappel des règles

L’Eurovision est donc un concours musical créé en 1956 auquel peuvent participer la plupart des pays européens. Ceux-ci envoient un artiste ou un groupe pour interpréter une chanson sur scène lors d’une soirée qui a généralement lieu fin mai, chaque année. Ensuite, chaque pays vote pour les chansons et les interprètes qu’il a préférés, et attribue ainsi de 1 à 12 points à un autre pays. Les points attribués sont affichés comme suit (profitons-en pour remercier l’Arménie !).

Points Arménie 2015

Ces votes sont pour moitié issus d’un jury de spécialistes réunis par la chaîne de télévision diffusant l’Eurovision dans le pays en question, et pour l’autre moitié viennent du vote par téléphone au sein du pays. N’oubliez pas que bien que le but soit de sélectionner la chanson préférée des européens, de nombreux votes vont en direction des pays frontaliers et alliés, ce qui permet de réviser sa géopolitique à peu de frais.

C’est d’ailleurs souvent un des arguments avancés pour expliquer nos échecs répétés de ces dernières années : nous n’aurions pas de véritable “bloc” de vote comme pourraient en avoir les pays scandinaves, ou les pays de l’ex-bloc soviétique. L’étude des votes permet de détecter des cliques de votants, et ainsi de faire émerger ces structures de bloc : on peut lire par exemple cette étude sur le sujet.

Mais ce n’est pas le sujet dont je veux parler ici – bien que j’espère pouvoir en faire une autre note de blog très bientôt ! Je n’ai en effet pas fini d’expliquer les règles de la compétition. Ces dernières années, de plus en plus de pays souhaitent participer à l’Eurovision. Or, la soirée n’était pas extensible, il est nécessaire de limiter le nombre de prestations ayant lieu avant les votes. C’est pourquoi il a été décidé d’organiser deux demi-finales avant la soirée finale afin de présélectionner les pays. Cette année, 40 pays (dont l’Australie !) participaient au concours se déroulant à Vienne. Les deux demi-finales qui ont lieu les jours précédents ont départagé 17 et 16 pays respectivement (ce qui a conduit à quelques malheureuses pertes…). Si vous avez bien suivi, vous avez du remarquer que 17 + 16 ne font pas 40 : c’est qu’il existe une règle spéciale pour les membres du Big Five, c’est à dire la France, l’Espagne, le Royaume-Uni, l’Allemagne et l’Italie, qui sont automatiquement qualifiés pour la finale en raison de leur contribution plus importante au financement du concours. Un autre pays est automatiquement qualifié : il s’agit de l’organisateur, qui est le gagnant de l’année précédente. Enfin, pour ne pas déséquilibrer les demi-finales, l’Australie a également été automatiquement qualifiée en finale. Cela fait donc un total de 7 qualifiés pour la finale sans passer par les demi-finales.

Tant mieux ?

Je vous voir venir : “Mais c’est une bonne nouvelle, parce que vu notre niveau ridicule, on n’aurait aucune chance de jamais passer les demi-finales !”. Mais est-ce vraiment une si bonne nouvelle pour les performances de la France (et des autres pays qualifiés) ? Pour comprendre en quoi cela peut être une explication pour nos résultats catastrophiques, prenons un exemple très simple.

Imaginons un jeu entre 3 personnes, André, Bernard et Carine. Chacun tire une carte au hasard parmi 1-2-3, et celui ou celle qui a la plus grande valeur gagne. Dans ce cadre de figure, chacun a 1 chance sur 3 de gagner, et 2 chances sur 3 de perdre. Supposons maintenant que par galanterie, les hommes, André et Bernard, décident de jouer d’abord entre eux le droit de jouer contre Carine. Dans ce cas, chacun d’eux a 1/2 de gagner contre l’autre et d’accéder à la “finale” contre Carine. Une fois qu’André ou Bernard est qualifié en finale, quelle est la chance que Carine gagne contre lui ?

Une réponse naïve serait de dire qu’elle a toujours une chance sur 2, parce qu’elle ne saurait pas qu’il y a eu une compétition préliminaire entre les deux garçons. C’est faux, comme on peut le voir si on énumère les différentes possibilités :

André Bernard Qualifié Carine Gagnant
1 2 Bernard (2) 3 Carine
1 3 Bernard (3) 2 Bernard
2 3 Bernard (3) 1 Bernard
2 1 André (2) 3 Carine
3 2 André (3) 1 André
3 1 André (3) 2 André

On voit bien que Carine ne gagne son duel qu’une fois sur 3, uniquement quand elle a tiré le 3, ce qui est assez logique. Si on revient à l’Eurovision, que peut-on en déduire pour les pays qui sont qualifiés automatiquement ? Et bien, comme Carine, ils ont une tendance à perdre plus souvent que ce à quoi on s’attendrait (la fameuse chance sur 2), car ils sont directement en finale, sans que leur score ait été testé avant. Est-ce que cela pourrait expliquer pourquoi nous avons l’impression de toujours être en bas du tableau de scores ?

Nous allons faire quelques simulations (le calcul exact serait possible, mais je suis un flemmard…) pour évaluer l’impact que pourrait avoir cette qualification d’office sur le classement de la France et des autres pays du Big Five. Pour cela, nous reproduisons l’expérience des trois cartes évoquée précédemment en la généralisant : imaginons que chaque pays ait un carton avec un numéro de 1 à 40 indiquant quelle serait sa place si tout le monde participait à la finale (qui finirait alors à 3h du matin…).

Reproduisons ensuite le processus de sélection : parmi les 16 pays participant à la première demi-finale, les 10 meilleurs sont qualifiés pour la finale. Puis de façon analogue, parmi les 17 pays participant à la deuxième demi-finale, les 10 meilleurs sont qualifiés pour la finale.

Une fois ces phases de sélection terminées, la finale oppose 27 pays, les 20 qualifiés en demi-finale auxquels on rajoute la France, l’Espagne, le Royaume-Uni, l’Allemagne, l’Italie, l’Autriche et l’Australie. On peut maintenant en rangeant les cartons dans l’ordre connaître le tableau final de l’Eurovision. En reproduisant plusieurs centaines de milliers de fois ce processus, nous pouvons obtenir des résultats en moyenne sur les places des différents pays en finale, en utilisant la loi des grands nombres.

Ainsi, nous observons que sur 27 pays participants, un pays automatiquement qualifié comme la France arrive en moyenne à la 18ème place (17,7 pour être précis), tandis qu’un pays qui a du passer par la demi-finale finit en moyenne à la 13ème place (12,7) quand il réussit à accéder à la finale. Ainsi, être qualifié directement nous fait perdre 5 places en moyenne au classement final. Cela peut expliquer pourquoi nous avons tendance à rester dans les tréfonds du classement…

Plus spécifiquement, et cela a été un traumatisme pour nous l’an dernier, il est démoralisant de finir dernier du concours. Toujours en suivant ce processus de simulations, il est possible d’estimer la probabilité qu’un des 7 pays directement qualifiés soit dernier à l’Eurovision 2015. Nous obtenons le résultat assez impressionnant de 93,7% de chances pour un de ces 7 pays d’être dernier. Si l’on se restreint à un unique pays, au hasard la France, nous avions 13,5% de chance d’être derniers. En revanche, la probabilité pour un pays d’être premier est toujours de 1/27, peu importe que l’on soit directement qualifié ou pas : tout le monde a donc ses chances pour la prochaine organisation (cf l’Allemagne en 2010). Enfin, encore une fois, c’est en oubliant toutes les subtilités du vote géopolitique…

Et depuis 2000…

D’ailleurs, il est temps de comparer ces résultats avec la réalité. On se concentrera ici sur la période 2000-2015 car si l’on remonte trop loin dans le temps, il y a bien moins de pays participants et cette étude n’a donc plus vraiment de pertinence.

Quels ont été les scores moyens de la France ? et du Royaume-Uni, nos ennemis jurés ? Les données sont disponibles sur Wikipedia, pour la France et pour les Anglais. Un rapide calcul de moyenne nous permet d’obtenir les résultats suivants : la France a eu une place moyenne de 17,63 et le Royaume-Uni de 18,13. Bim les Anglais, retournez dans vos avions !

Toutes considérations de conflit franco-anglais mises à part, on s’aperçoit que nos simulations sont assez proches de la réalité, surtout pour la France. Ainsi, il semblerait que l’hypothèse communément admise que nos artistes ne sont pas adaptés au concours soit fausse : si nous réalisons de mauvais scores, c’est uniquement dû au système de qualification automatique. Le graphe suivant montre les résultats moyens des pays du Big Five pour les comparer avec les autres :

Graphe Eurovision

On voit bien qu’en moyenne les pays directement qualifiés sont bien derrière au classement, et que l’écart au classement varie chaque année, mais toujours en faveur des pays qui sont qualifiés par les demi-finales. Sur les 9 dernières éditions, les pays du Big Five ont été en moyenne 6 à 7 places derrières les autres, ce qui est un peu plus que prévu. Cela peut venir du vote géopolitique évoqué précédemment, ou juste d’une mauvaise série…

Qu’en est-il pour la dernière place ? Le tableau suivant récapitule les éditions depuis 2000 pour lesquels le pays arrivé dernier était automatiquement qualifié en finale :

2015 Autriche
2014 France
2010 Royaume-Uni
2008 Royaume-Uni
2005 Allemagne
2003 Royaume-Uni

(Remarque personnelle : Cette chanson de 2005 méritait vraiment de perdre. Bref.)

On a donc 6 chansons sur 16 qui sont à la dernière place qui viennent d’un des pays du Big Five ou de l’organisateur, soit 37,5% ce qui est bien loin des 93,7% estimés. On peut donc bien supposer que nos chansons sont moins nulles que ce à quoi on pourrait s’attendre. À part celles des Anglais, qui sont derniers 3 fois sur les 16, soit 18,8% du temps, alors qu’on avait estimé le risque à 13,5%. You suck, England!

[Geekery] Le mariage gay, une “loi détruisant notre société” ?

Comme certains ont pu le dire à l’époque des débats sur le mariage gay, en 2012, il y avait une crainte que cette nouvelle loi amène l’apocalypse et la fin de la civilisation en France. Il semblerait que, deux ans et quelques jours après, l’apocalypse ne soit pas encore arrivée, et que seuls quelques dizaines de milliers de mariage aient été célébrés. Mais on n’en est qu’à deux ans après l’adoption de la loi : que pourrait-il bien se passer à plus long terme ?

Pour éviter de recevoir trop de mails d’insultes et autres réjouissances, je vais vous rassurer de suite : il ne s’agira pas dans cet article de s’intéresser à l’impact sur les enfants, la société, ou que sais-je, du fait d’avoir autorisé deux hommes ou deux femmes à se marier. Non, ce qui m’a frappé dans cette loi, c’est son article 11. Celui-ci dit :

« En cas de désaccord entre les parents, signalé par l’un d’eux à l’officier de l’état civil, au plus tard au jour de la déclaration de naissance ou après la naissance, lors de l’établissement simultané de la filiation, l’enfant prend leurs deux noms, dans la limite du premier nom de famille pour chacun d’eux, accolés selon l’ordre alphabétique. »

Je résume (sans aucune mauvaise foi) : blablabla, le nom des enfants sera celui des parents accolés dans l’ordre alphabétique. C’est bien, l’ordre alphabétique, non ? C’est neutre, c’est pour l’égalité homme-femme, homme-homme et femme-femme, tout ça. Mais ce qui me perturbe, personnellement, c’est que si monsieur A épouse madame B (+1 point hétérocentrisme), leurs enfants s’appelleront A-B. Et si ils épousent les enfants de C et D, soient les C-D, eh bien leurs enfants à eux (les petits-enfants de monsieur A et madame B) auront A-C comme patronyme. Vous avez bien vu, les noms de famille B et D ont disparu. Pourquoi ? Parce qu’ils sont plus loin dans l’ordre alphabétique. Le mariage va donc bien détruire notre civilisation, en s’attaquant à nos patronymes ! Peut-on essayer d’évaluer la vitesse de cette décadence ?

Quelle sont les noms de famille les plus courants ?

La question du nom de famille le plus courant n’est pas compliquée : c’est Martin, avec une très large avance. Certains sites comme celui-ci permettent de le savoir, bien que leurs sources ne soient pas très clairement précisées. Mais ce qui nous intéresse ici est une distribution plus générale des noms de famille en France. Pour cela, nous allons utiliser les données du Bac 2014, en faisant des statistiques sur les noms des candidats. Cela peut créer quelques biais, parce que cela concerne une seule génération et non pas la population toute entière, et parce que toute la génération en question ne se présente pas au bac (qu’il soit général, professionnel ou technologique). Néanmoins, c’est une des sources les plus solides pour ce genre de questions, d’autant plus que leur âge uniforme (et leur absence d’enfants, a priori) va permettre de les considérer comme la première génération. La distribution, rapportée à 10.000 personnes, est la suivante :


On a représenté la distribution des noms de famille suivant les initiales. On remarque déjà que c’est la lettre B qui est la plus courante (vous connaissez beaucoup de personnes dont le nom de famille commence par B ? C’est normal), et qu’il y a de fortes disparités entre les différentes lettres : pas grand monde n’a un patronyme commençant par Q, U ou X, du moins en France.

Avec un peu de mauvaise foi

Maintenant que nous connaissons la situation initiale de la répartition des noms de famille en France, du moins de leurs initiales, il est temps de s’intéresser à l’impact qu’aurait le fait d’attribuer aux enfants les deux noms de leurs parents 1 et 2 (-1 point hétérocentrisme), ordonnés dans l’ordre alphabétique, dans la limite d’un nom par parent. Pour cela nous allons utiliser un modèle très simple de générations : parmi les N individus de notre population, les N/2 premiers vont se marier avec les N/2 autres, au hasard (du moins au hasard selon l’initiale du nom de famille, d’autres facteurs pouvant jouer). Ensuite, on va supposer que chacun des couples aura deux enfants : leurs noms de familles commenceront par l’initiale du nom des deux parents qui est le premier dans l’ordre alphabétique. Evidemment, comme le mariage gay est autorisé, on ne s’intéressera pas au sexe des marié(e)s : ils auront leurs enfants de la façon qui leur convient, cela n’est pas la question soulevée ici.

À quoi va ressembler la distribution des noms de familles dans la génération suivante, pour les bacheliers de 2040 ? Les simulations donnent le résultat suivant :


On remarque déjà une belle modification de la distribution des noms de famille. Beaucoup plus de personnes ont un nom qui commence par une lettre de début de l’alphabet, et c’est évidemment l’inverse pour les noms dans le milieu et la fin de l’alphabet. Mais la modification est encore mineure : que se passera t-il dans 5 générations, soit dans 125 ans environ ?


Impressionnant. La distribution n’a plus rien à voir : tous les patronymes commencent par A, B, voire C pour quelques chanceux. La totalité de la culture présente dans nos patronymes a été anéantie. C’est véritablement l’apocalypse annoncée.

Soyons plus réalistes

J’ai un peu joué sur les mots dans la partie précédente. L’article de loi ne force personne à donner comme nom de famille à ses enfants les deux noms de ses parents dans l’ordre alphabétique, elle donne seulement un cadre pour toute situation où il y aurait désaccord ou problème. Il s’agit donc d’appliquer cette règle uniquement dans ces cas. Nous évaluons à environ 10% des cas cette règle : que ce soit par erreur, par désaccord, pour éviter tout problème dans le couple, il nous semble crédible qu’un couple sur 10 environ suive la règle édictée par la loi. Pour les 90% autres, il y a un accord entre les parents : on peut raisonnablement penser que cet accord se fait la moitié du temps en faveur du parent 1, et la moitié du temps en faveur du parent 2 (-1 point hétérocentrisme, j’espère finir en négatif). Dans ce cas, l’évolution d’une génération à l’autre est évidemment moins marquée que dans le cas précédent. Mais que se passe t-il à long terme ?


Ce (magnifique) graphe s’intéresse à l’évolution générale des initiales des noms de familles, entre ceux commençant par A, qui commencent à environ 4%, pour monter très haut génération après génération, ceux par B qui connaissent un pic aux alentours de la 25ème génération, tandis que toutes les autres lettres tendent à disparaître à plus ou moins long terme. Plus précisément, ce graphe dynamique montre l’évolution d’une génération à l’autre de la distribution des noms de famille :

Même avec des hypothèses plus réalistes, il n’y a que le délai avant l’apocalypse qui change. De manière plus précise, nous pouvons estimer à partir de combien de générations il n’y aura plus de noms commençant par chacune des lettres (sauf A, qui ne disparaît jamais, et B qui persiste de nombreuses générations) :

100 98 74 82 87 77 57 71 70 81 81 63
56 72 45 70 70 64 36 62 48 13 39 46

Légende : Sous chaque lettre est indiquée le nombre de générations nécessaires avant la disparition de la totalité des noms de famille commençant par cette lettre. Par exemple, il faut attendre 46 générations pour que tous les patronymes commençant par Z disparaissent.

Les noms en X sont les premiers à disparaître, après 13 générations, soit un peu plus de 3 siècles, ce qui nous laisse tout de même le temps de voir venir. Mais, en parlant de noms de famille commençant par X, vous en connaissez beaucoup ? Xavier, d’accord, mais à part celui-là ? La plupart d’entre eux sont des noms d’origine étrangère, et donc viennent de l’immigration. Ce qui est précisément le facteur que nous avons oublié.

L’immigration va-t-elle nous sauver ?

Il serait plus correct de dire l’un des deux facteurs : pour être tout à fait exact, il faudrait mentionner que pas tout le monde ne se marie et n’a des enfants, mais ce comportement n’a aucune raison d’être lié au nom de famille, du moins pas directement. On peut donc supposer que 15% des gens n’ont pas d’enfants (selon le Figaro, c’est un homme sur 5, mais à 50 ans ce qui laisse un peu de marge – on peut aussi aller jeter un oeil sur fivethirtyeight (en) sur la question aux États-Unis).

Mais revenons à l’immigration. Comme nous n’avons aucune envie de nous lancer dans le débat sur le nombre d’immigrés arrivant ou repartant, laissons ça aux spécialistes. Ce qui nous intéresse ici est une étude à long terme, et un modèle fréquemment utilisé en démographie pour cela est celui de population stationnaire, où la taille n’évolue plus. On va donc supposer que les 15% d’enfants qui ne sont pas nés d’après l’hypothèse précédente sont remplacés par une immigration entrante de même taille.

Reste une question de taille : si l’on s’intéresse aux noms de famille des personnes venant vivre en France, comment connaître leur répartition ? On pourrait imaginer récupérer des données sur l’ensemble des pays du monde, et les pondérer selon le pourcentage d’arrivants par pays, qui n’est pas très bien connu, en prenant en compte des évolutions pour chacune des générations successives. Mais c’est très compliqué, et cela n’aurait concrètement rien apporté de tangible. Nous allons nous limiter à deux hypothèses qui sont aussi peu crédibles l’une que l’autre, mais qui ont le bénéfice d’être simples à mettre en oeuvre.

Tout d’abord, supposons que la totalité des pays du monde a la même distribution des noms de famille que la France. Dans ce cas, les noms des immigrants suivent la même répartition que celle de la France avant l’application de la loi, c’est à dire celle des bacheliers 2014. L’évolution est alors la suivante :


Une autre hypothèse est de dire que comme les noms de familles peuvent provenir de pays, de cultures et même d’alphabets très différents, il y a autant de chance que le nom de famille commence par chacune des lettres de l’alphabet latin. Autrement dit, la répartition des initiales des noms des arrivants est uniforme. L’évolution est alors la suivante :


Dans les deux cas, la situation ne semble plus se dégrader à moyen terme : les noms de familles commençant par toutes les lettres hormis les toutes les premières ne vont pas disparaître d’ici quelques siècles, bien qu’il y ait une légère hausse des noms commençant par A et B dans le cas d’une répartition des noms mondiale similaire à celle de la France. Cas très improbable, on le rappelle.

Il semblerait donc que l’immigration nous sauvera de l’apocalypse causée par l’adoption du mariage gay. Quel retournement de situation, n’est-ce pas ?

image source : Wikimedia, Le mariage de Sigebert Ier et de Brunehaut

[Sampling] L’algorithme CURIOS pour les nuls

La problématique de la baisse continue des taux de réponse aux enquêtes depuis les années 1950 conduit les méthodologues d’enquête à innover et à adapter les techniques d’enquête aux nouvelles données (voir par exemple la présentation de Carl-Erik Särndal aux JMS de 2012). Certaines de ces méthodes sont basées sur les techniques de priorisation, qui consistent à “prioriser” (relancer par téléphone, sur-représenter dans un échantillon, encourager par des cadeaux…) des individus parmi la population afin d’équilibrer les échantillons, c’est à dire d’éviter de se retrouver avec un échantillon uniquement composé de ceux qui auront eu la “gentilesse” de répondre à l’enquête spontanément, groupe qui ne présente pas nécessairement la diversité voulue pour l’analyse des résultats de l’enquête. Ces techniques de priorisation sont principalement utilisées dans le cadre d’enquêtes par téléphone (dites CATI). Nous souhaitons ici présenter une méthode applicable aux enquêtes CAPI, c’est à dire en face-à-face, avec un enquêteur se rendant au domicile de la personne interrogée, ce qui suppose une phase de reconnaissance et ne permet pas une priorisation à la volée.

L’algorithme CURIOS (Curios Uses Representativity Indicators to Optimize Samples) est utilisable dans le cadre d’une enquête en plusieurs vagues. À la fin de la première vague, on peut trouver les groupes à prioriser, et l’algorithme permet de tirer un échantillon de seconde vague qui réponde à des objectifs précis d’équivalence, de qualité et de spécificité. Expliquons tout cela plus en détail.

Cet article fait suite à la présentation du 02 avril 2015 aux JMS (Journées de Méthodologie Statistique) à Paris, et en particulier à la présentation (lien à venir) liée aux deux articles suivants : Algorithme Curios et méthode de ‘priorisation’ pour les enquêtes en face à face. Application à l’enquête Patrimoine 2014 et l’utilisation des R-indicateurs pour « prioriser » la collecte des enquêtes Ménages : une application à l’enquête Patrimoine 2010.

L’échantillonnage usuel

On suppose que l’on s’intéresse à une population de 100 individus, représentés comme suit :


Usuellement, la plupart des enquêtes sont réalisées en une seule phase : on tire un échantillon d’une taille convenable (c’est à dire suffisante pour permettre une bonne précision des résultats, mais pas trop importante pour limiter les coûts et la logistique de l’opération) selon un plan de sondage adapté et on réalise l’enquête auprès des individus sélectionnés. Par exemple, on peut obtenir l’échantillon suivant :


Détection des groupes priorisables

Une fois que ces individus ont été enquêtés, certains auront répondu et d’autres non. On dispose à propos de chacun d’entre eux d’informations socio-démographiques présentes dans la base de sondage qui permettent usuellement d’étudier et de traiter le phénomène de non-réponse. Ici, on souhaite identifier les groupes qui sont sous-représentés parmi les répondants, c’est à dire des groupes dont le comportement de réponse diffère à la baisse. Pour cela, on utilise des indicateurs de représentativité tels que les R-indicateurs (Schouten, 2009) ou d’autres : variance due à la non-réponse, etc. L’échantillon peut donc être séparé en deux groupes :


où les individus entourés de bleu sont non-répondants, et les individus rouges sont ceux qui sont à prioriser, si une deuxième vague de l’enquête devrait avoir lieu. Pourquoi tous les individus non-répondants ne sont pas rouges ? Par exemple, on peut imaginer que les individus rouges sont ceux vivant en milieu rural et les noirs en milieu urbain, ou plus spécifiquement que les rouges sont les individus vivant en milieu rural dans des logements de plus de 70m² : la séparation entre rouges et noirs doit reposer sur des critères disponibles dans la base de sondage. Ces critères sont déterminés à l’aide des indicateurs de répresentativité.

Que fait CURIOS alors ?

Comme nous l’avons déjà mentionné, l’algorithme CURIOS nécessite que le sondage soit réalisé en deux phases. L’échantillon classique ne conviendrait pas. Il faut donc tirer dans une première phase une partie seulement des individus. Pour que cela soit plus visuel sur l’exemple, nous en tirons la moitié, mais il est plus recommandé de réaliser environ 75% de la collecte avant de lancer une deuxième vague. Concrètement, à la fin de la première phase on peut réaliser la procédure de priorisation et détecter les individus rouges :


On remarque bien ici que cette recommandation de 75% de la collecte effectuée en première phase permet de s’assurer que les individus que l’on identifiera comme sous-représentés le sont bien structurellement et non pas seulement à cause d’un artefact statistique. On peut alors appliquer la séparation en deux groupes, noirs et rouges, à la population entière (moins le premier échantillon, évidemment) :


On a bien remarqué que les rouges étaient moins bons répondants, et qu’il fallait les prioriser. La logique veut donc que dans l’échantillon de seconde vague le nombre de rouges soit plus important que prévu. Mais combien de rouges faut-il exactement ? L’algorithme CURIOS permet de quantifier cela précisement. On obtient par exemple :


Soit, en combinant les échantillons de première et de deuxième vague :


Cela peut impliquer que le nombre de répondants est plus faible que dans le cas de l’échantillon standard : il y a plus de rouges, et ils répondent moins bien. Mais cela n’est pas un problème car la qualité de l’échantillon est assurée, et l’exploitation des résultats sera possible.

Quelques simulations

Pour s’en convaincre, nous avons réalisé des simulations sur une enquête INSEE réalisée en 2010 sur le patrimoine des français. Les variables d’intérêt de l’enquête sont le patrimoine moyen des français (dit brut), le patrimoine net qui correspond au patrimoine brut moins les dettes, et la ventilation en patrimoine financier (comptes…), immobilier et professionnel (pour les entrepeneurs et commerçants). On veut comparer la précision de l’estimation de ces différents indicateurs dans l’enquête qui a eu lieu en 2010 en présence ou non d’une procédure de priorisation.

Pour cela, nous avons simulé un phénomène de non-réponse supplémentaire, et décidé d’affecter certains enquêteurs à la réalisation de quelques enquêtes en plus dans les zones les plus touchées. Dans un premier temps, cette affectation était faite aléatoirement : les enquêteurs pouvaient aller voir n’importe quel logement de la zone, aucun critère n’était donné. Dans un second temps, cette affectation était limitée aux ménages sous-représentés : les enquêteurs ne pouvaient enquêter que ces logements et n’avaient pas la possibilité d’en interroger d’autres. Les résultats obtenus sont les suivants :


On remarque bien que pour la plupart des indicateurs (surtout les deux principaux, patrimoine brut et net) la méthode de priorisation semble améliorer la précision des estimations, de manière bien plus importante que la méthode aléatoire. Il est important de noter que cette amélioration de la précision se fait à nombre de fiches-adresses enquêtées constant voire inférieur, et donc à nombre de répondants inférieur en raison de la concentration des enquêteurs sur des populations par nature moins bons répondants.

[Geekery] How many stations of the Paris Métro could you pass through in alphabetical order?

I spend a lot of time in the Parisian subway, as I use it everyday to go to work, and sometimes to meet some friends of mine. I usually spend my time listening to music and asking myself lots of questions about its organisation : how the time frequencies of subways are decided ? How can empty trains become completly full within minutes ? I guess there are people working on that, but there are some sillier questions I doubt anyone is paid to look for an answer to.

One of these came recently into my mind when I was on the “ligne 13”, between “Montparnasse Bienvenue” and “Porte de Vanves”. I realized that I passed through 4 stations which were in alphabetical order.

So now I wonder : using only the subway, what is the maximal number of stations in alphabetical order you could go through? I already know it is at least 4 because I do that every morning or so, but could we go up to 5, 6, 7, or maybe more ? Let’s do some research!


5 stations in a row…

I’m a very lazy person, so I’m not going to do it by looking at all the lines in the Paris Metro, but I’d rather ask gently my computer to do it for me. First, I need to gather some data about the stations’ name on every line of the metro. These informations are available at different places, such as Wikipedia and “data.gouv”, which is the official French governement website on open data.

All left to do is an easy computation of the maximum number of stations in alphabetical order for each line, going back and forth. The algorithm used is thereby (in pseudocode):

maximum_number <- function(Line) {
    for Station in Line {
    if (Station > Station_prec) {Counter <- Counter + 1}
    else {Maximum = max(Maximum,Counter) ; Counter = 1}	
  Maximum = max(Maximum,Counter);

The results obtained are compiled in this graph:


The answer to my question seems to be 5 stations: "ligne 2" (Belleville / Couronnes / Ménilmontant / Père Lachaise /Philippe Auguste), "ligne 5" (Bobigny-Pablo Picasso / Bobigny-Pantin-Raymond Queneau / Église de Pantin / Hoche / Porte de Pantin) or "ligne 12" (Falguière / Montparnasse-Bienvenüe / Notre-Dame-Des-Champs / Rennes / Sèvres-Babylone).

... or maybe more?

Ok, so I was right 4 wasn't the best I could do. But I feel like I'm forgetting something... Of course, the connections between the lines! The Paris Metro is organized around huge hubs such as "Montparnasse-Bienvenüe" which belong to plenty of lines, so I guess using these big stations might get us to better than 5, right?

As you may know, the organization of the subway is quite complex. To simplify my study, I will consider that two lines are connected at a station iff the station's name is the same on the two lines. For instance, on the map previously shown, I consider "La Chapelle" and "Gare du Nord" not to form a connection, but "Gare du Nord" to be one on its own, between Line 4 and 5.

The algorithm I use is a more complex than the previous one. It requires to browse through all the subway network in order to find the higher number of stations in alphabetical order. For those with some computing background who are used to recursive functions, here is my pseudocode :

 max_length <- function(Station) {
	Connections = connection_list(Station)
        Values = void()
	for (Line in Connections) 
		{ Next_Station = Line[id_Station + 1]
                  Values = c(Values, max_length(Next_Station) }

And the result is... 6! Well, I though that using the connections might lead to an higher number of stations, but whatever. There are numerous ways to achieve the maximum number:

  • Belleville (2) / Colonel Fabien (2) / Jaurès (2->5) / Laumière (5) / Ourcq (5) / Porte de Pantin (5)
  • Duroc (13) / Montparnasse Bienvenue (13->12) / Notre-Dame des-Champs (12) / Rennes (12) / Sèvres Babylone (12->10) / Vaneau (10)
  • Gaité (13) / Montparnasse Bienvenue (13->12) / Notre-Dame des-Champs (12) / Rennes (12) / Sèvres Babylone (12->10) / Vaneau (10)
  • Edgar Quinet (6) / Montparnasse Bienvenue (6->12) / Notre-Dame des-Champs (12) / Rennes (12) / Sèvres Babylone (12->10) / Vaneau (10)
  • Falguière (12) / Montparnasse Bienvenue (12) / Notre-Dame des-Champs (12) / Rennes (12) / Sèvres Babylone (12->10) / Vaneau (10)

Well, there are at least two completly different ways to achieve the record of 6 stations in a row: the first one, in the northeastern part of Paris, and the 4 others located near Montparnasse. Fun fact: before 1942, Montparnasse and Bienvenüe were two different stations (see there), and "Porte de Pantin" station wasn't built (see there): therefore the only possible circuit was :

  • Falguière (12) / Montparnasse Bienvenue (12) / Notre-Dame des-Champs (12) / Rennes (12) / Sèvres Babylone (12->10) / Vaneau (10)

But I guess there were more urgent things to deal with at this time.

Let's simulate some graphs!

I'm now wondering what would happen if I did this kind of analysis for all the subway network all around the world. But as I mentionned before, I'm kind of lazy, so I won't try to gather all the data about all these networks. Another approach is to try to know if the Paris Metro network is particular, or if it behaves like an average graph. So I'll try to simulate some networks, compute the maximum number of ordered nodes, and compare the mean value obtained to 6.

A graph is a representation of a set of objects, denoted the vertices, which are the stations here, and the relations between them. Each time two vertices A and B are in relation, there is a link, denoted an edge, going from A to B. In our subway example, it will mean that you can go directly from station A to station B without any stop. We will consider it as a symmetric graph, which means that when you can go from A to B you can also go back to A from B, even if in the Paris Métro there is some absurd lines (for instance, the West part of the "ligne 10").

Unfortunately, simulating a subway network is quite hard (citation needed). As I only have small knowledge of graph theory, I'll try the simplest way to simulate a graph, which happens to be the Erdos-Renyi method: we first generate 300 vertices (because there is about 300 stations in Paris), numbering them from 1 to 300. Then, for each possible link between two stations, we roll a (odd) dice to determine if there is an edge or not. The dice is designed in order to obtain an average of 371 edges, because there is 371 links in the parisian network.

Using R, I simulated 1000 graphs with this method. Then for each of them I apply an algorithm, similar to the one previously presented, to get the maximum number of ordered vertices, using the label given to them. I obtain the following results:


It seems that 6 is at the bottom of the distribution of the maximum number of ordered stations (average is about 7.8), which may lead us to think that we are unlucky in Paris. But we have to keep in mind a few things :

  • First, the model used here isn't at all a good model for subway network. So this comparison is a little fallacious, and we shouldn't jump to any conclusion.
  • Someting else that may explain the difference between the simulations and Paris Métro is that the names of the stations aren't really uniformly distributed: there are some spatial correlations between the names, for instance all the "Porte de" are located near Paris' exits, and "Bobigny-Pablo Picasso" and "Bobigny-Pantin-Raymond Queneau" are obviously close stations. This might lead to less randomness and biased results.

I guess I have to do the job for all the other subways. I think I will start with this one!

Image titre : Paris Métro Entrance, Abbesses