{"word_count": 1623, "character_count": 11616}
Il y a quelques mois, Baptiste Coulmont m'avait contacté avec une question passionnante (comme chaque fois qu'il me contacte).Baptiste voulait travailler sur la proportion de personnes qui ont un homonymes dans une population de taille donnée, ou sur la probabilité de ne pas avoir d'homonymes dans un bureau de vote, par exemple. Or ce dernier problème n'est pas sans rappeler le "paradoxe des anniversaires".Dans un groupe de 23 personnes, il y a plus d'une chance sur deux pour que deux personnes de ce groupe aient leur anniversaire le même jour. Ou dit autrement, il est plus surprenant de ne pas avoir deux personnes qui ont leur anniversaire le même jour que d'avoir deux personnes qui ont leur anniversaire le même jour.On parle de "paradoxe" parce que le nombre de jours possibles est relativement grand ([latex]k=365[/latex]), mais que la taille du groupe est elle relativement petite ([latex]n=23[/latex]). Ici c'est un peu la même chose, sauf qu'on est sur des nombres beaucoup plus grands: on a des milliers de noms possibles (en fait, on s'intéresse au couple prénom+nom, ce qui augmente très largement le nombre de possibilités, que l'on notera [latex]k[/latex] ici), on considère des groupes relativement grands (la taille du groupe sera elle notée [latex]n[/latex]), et surtout, l'hypothèse (implicite) d'uniformité dans la distribution des dates ne marche pas sur les noms de famille, et les prénoms. On peut malgré tout tenter de formaliser le problème.Considérons une collection de [latex]k[/latex] éléments, notée [latex]\mathcal{X}=\lbrace x_1,\cdots,x_k\rbrace[/latex], et faisons [latex]n[/latex] tirages avec remise. Les tirages obtenus sont notés ici [latex]X_1,\cdots,X_n[/latex] et correspondent à des variables aléatoires iid, suivant des lois multinomiales sur [latex]\mathcal{X}[/latex] avec comme vecteur de probabilités [latex]\mathbf{p}=(p_1,\cdots,p_k)[/latex]. Dans le cas des anniversaires, [latex]\mathcal{X}[/latex] correspond aux dates, avec [latex]k=365[/latex], et [latex]\mathbf{p}[/latex] est uniforme sur [latex]\mathcal{X}[/latex] - ou encore [latex]\mathbf{p}=\mathbf{1}/k[/latex] . Le problème classique est de calculer la probabilité que dans un groupe de taille donnée tout le monde ait des dates d'anniversaire différentes[latex display="true"]\mathbb{P}[\forall j\neq i, X_i\neq X_j][/latex]mais on peut aussi calculer (comme le voulait Baptiste) la proportion de personne ayant un alter-ego (une personne dans le groupe qui a son anniversaire le même jour)[latex display="true"]\frac{1}{n}\sum_{i=1}^n \mathbf{1}(\exists j\neq i,X_i=X_j)[/latex]On a donc tenté d'approcher le second, quand on a un groupe de taille [latex]n[/latex]. Notons [latex]Z_i[/latex] le nombre de personnes (parmi les [latex]n-1[/latex] restantes) qui partagent la même date d'anniversaire que [latex]i[/latex],[latex display="true"]Z_i=\sum_{j\in\{1,\cdots,n\}\backslash\{i\}} \mathbf{1}(X_j \neq X_i)[/latex]Aussi, la personne [latex]i[/latex] a un alter-ego si [latex]Z_i\geq 1[/latex]. Et donc, la proportion de personnes avec un alter-ego dans le groupe s'écrit[latex display="true"]P_{n,k}=\frac{1}{n}\sum_{i=1}^n \mathbf{1}(Z_i\geq 1)[/latex]Si [latex]\mathbf{p}[/latex] correspond à la loi uniforme sur [latex]\mathcal{X}[/latex], alors[latex display="true"]1-P_{n,k}=\binom{k}{n}\frac{1}{k^n}\sim \exp\left[\binom{n+1}{2}\frac{1}{k}\right]\sim e^{-n^2/2k}[/latex]comme le montre Chatterjee et al. (2004). Je pourrais aussi renvoyer aux articles de Inoue &#38; Aki (2008) et plus récemment de  Cortina Borja (2013) pour des revues de littérature sur les aspects computationnels.Mais la plupart des résultats sont obtenu dans le cas où [latex]\mathbf{p}[/latex] correspond à une distribution uniforme. Les propriétés plus générales sont beaucoup plus rares(on pourra lire Munford (1977), Das Gupta (2004),  Inoue &#38; Aki (2008) ou Nunnikhoven (1992) pour des tentatives. Utiliser des méthodes de Monte Carlo est probablement le plus naturel (si on n'est pas trop pressé) en se donnant un ensemble [latex]\mathcal{X}[/latex] (qui sont les dates dans le problème des anniversaires et les noms dans le cas des homonymes) de taille [latex]k[/latex], et une distribution [latex]\mathbf{p}[/latex] sur [latex]\mathcal{X}[/latex]. On a ainsi pu approcher [latex]P_{n,k}[/latex], la proportion de personnes ayant un alter-ego dans une population de taille [latex]n[/latex]: sur les figures ci-dessous, on a cette proportion en fonction de  [latex]n[/latex] (en abscisse), avec des courbes différentes pour différents [latex]k[/latex]. Histoire d'être un peu réaliste, on va chercher le taux de personnes ayant un homonyme dans une popoluation de plusieurs centaine de milliers de personnes, et quand aussi des milliers, des dizaines de milliers, de possibilités.Dans le cas d'une distribution uniforme, la proportion évolue comme sur la figure ci-dessousOn a tenté de quitter l'indépendance en utilisant une loi paramétrique, plus précisément une loi de type Pareto, ou Zipf, pour [latex]\mathbf{p}[/latex]. En fait, c'est le type de distribution qu'avait observé Li (2012) sur la distribution des prénoms, avec [latex]p_i \propto i^{-\alpha}[/latex] (ou plus récemment, Höhle (2017)). On a alors l'évolution suivanteOn est ici en échelle logarithmique pour la taille [latex]n[/latex] parce que c'est naturel. Mais pour l'instant, on était resté sur [latex]P_{n,k}[/latex]. Baptiste insistait pour passer aussi à une échelle logarithmique sur l'axe des ordonnées, mais ca n'etait pas concluant. On a alors tenté deux autres représentations, plus classiques quand on travaille sur des probabilités (ou des proportions) : représenter [latex]\text{logit}(P_{n,k})[/latex] en fonction du logarithme de [latex]n[/latex] (où [latex]\text{logit}(u)=\log[u/(1-u)][/latex]) et une version probit, à savoir [latex]\Phi^{-1}(P_{n,k})[/latex] (où ici [latex]\Phi[/latex] est la fonctionc cumulative de la loi normale centrée et réduite).En grande dimension, on a l'impression d'avoir une relation linéaire entre la transformée probit de la proportion de personnes ayant un homonyme et le logarithme de la taille de la population considérée[latex display="true"]\Phi^{-1}(P_{n,k}) \sim a_{k}+b_{k} \log[n][/latex]C'est joli, mais on se demandait comment utiliser ca sur nos données, pour travailler vraiment sur les homonymes. Le soucis, c'est qu'on n'a pas de fichier national, avec les noms et les prénoms. Alors Baptiste a sorti de son sac les listes électorales parisiennes. Le soucis est que la base est (relativement) petite. Le nombre de couple est très limité. Au lieu de faire des tirages avec remise dans les couples ("prénom", "nom") - encore une fois, la base est trop petite - on a voulu tenter de tirer indépendemment le "prénom" et le "nom". On y gagne en ayant à disposition une base plus grande, mais on introduit un biais colossal, les "prénom" et "nom" étant assez corrélés. Dans notre cas, on a [latex]k_1[/latex] "prénom" et [latex]k_2[/latex] "prénom". Il y a quelques années Chalabi &#38; Flowers (2014)} (repris plus en détails sur ce blog) était revenu sur la non indépendance des noms et des prénoms, en s'interrogeant sur le nom le plus populaire aux Etats-Unis. Selon les auteurs "Michael Smith" n'était probablement pas le nom le plus populaire, même si "Michael" et "Smith" étaient respectivement les "prénom" et "nom" les plus populaires. En France "Jean" et "Marie" sont les prénoms les plus populaires pour les garcons et les filles, respectivement, et "Martin" est le nom le plus populaire (au moins sur les listes électorales parisiennes), mais en fait, le nom le plus populaire est "Thi Nguyen", avec 350 personnes à Paris, alors que seulement 84 "Jean Martin" sont observés, le troisième plus haut score. Ah oui, je dois préciser qu'on se limite ici au premier prénom, en cas de prénoms composés. Tout comme Chalabi &#38; Flowers (2014), on a fait un test du chi-deux pour tester l'indépendance, sur les 20 "noms" et "prénoms" les plus populaires. Sur la figure ci-dessous, on a les résidus normalisés du test. Par exemple "Michel Michel"est en rouge, car c'est beaucoup moins donné que ce qu'on aurait si  les deux composantes étaient indépendantesBref, on n'a pas trop le droit de tirer le "prénom" et le "nom" indépendament. Mais on va quand même le faire, pour voir. Ici [latex]\mathcal{X}[/latex] est l'ensemble [latex]\mathcal{X}_1\times\mathcal{X}_2[/latex] avec [latex]k_1[/latex] choix pour le "prénom" et [latex]k_2[/latex] pour le "nom".Soit [latex]\mathbf{p}=(p_{i_1,i_2})[/latex] la probabilité empirique sur [latex]\mathcal{X}[/latex]. On imagine que [latex]\mathbf{p}[/latex] contient énormément de 0, car beaucoup de couples ne sont pas observés. Pour les simulations, on va noter [latex]\mathbf{p}^{\perp}[/latex] la pobabilité jointe sous hypothèse d'indépendance[latex display="true"]p^{\perp}_{i_1,i_2}=\left(\frac{1}{k_2}\sum_{j=1}^{k_2} p_{i_1,j}\right)\cdot\left(\frac{1}{k_1}\sum_{j=1}^{k_1} p_{j,i_2}\right)=p_{i_1,\cdot}p_{\cdot,i_2}[/latex]Lors de nos simulations, on va considérer deux cas : on dire des [latex]\mathbf{x}=(x_1,x_2)[/latex] soit suivant la distribution [latex]\mathbf{p}[/latex], soit suivant [latex]\mathbf{p}^{\perp}[/latex]. Bon, j'avais formalisé pour clarifier un peu dans ma tête et aussi pour impressionner Baptiste, mais techniquement, dans un cas on tire une paire observée - genre "Baptiste Coulmont" - et dans le second cas, on tire d'un côté un prénom - genre "Baptiste" - et de l'autre un nom de famille - genre "Charpentier" (même s'il n'existe aucun "Baptiste Charpentier", on dit juste qu'il serait possible qu'il y en ait un).Bref, on tirant des échantillons (plusieurs milliers de taille donnée, puis en moyennant), on obtient la figure ci-dessous (avec une échelle logarithme pour l'axe des ordonnées)La courbe noir sur-estime sûrement à cause du faible nombre de choix possibles (on va tirer jusqu'à 50 millions de noms). En revanche, l'indépendance n'étant pas réaliste, la courbe rouge sous-estime probablement la proportion. Mais le plus intéressant est le graphique ci-dessous, obtenu en représentant la version probit de la probabilitéLa courbe rouge est incroyablement linéaire ! Bien plus linéaire que ce qu'on espérait avoir suite à nos simulations dans le cas de la loi de Pareto.En fait, on note que si on se limite au cas où [latex]n[/latex] n'est pas trop grand, la courbe noire semble aussi linéaire. Ensuite on perd la linéarité parce qu'on tire avec remise dans une base trop petite, mais au début (lorsque [latex]n[/latex] n'est pas trop grand), on pourrait accepter l'hypothèse d'une relation linéaire entre la transformée probit, et le logarithme de [latex]n[/latex]. Bref, on estime une relation linéaire, et on extrapole pour les valeurs de [latex]n[/latex] plus grandesSi on revient sur la représentation plus classique, de la proportion de personnes ayant un homonyme en fonction de [latex]n[/latex], on obtientAutrement dit, en France, on peut estimer que 80% des francais ont un homonyme.Deux points pour poursuivre, sur la robustesse de l'approche. Tout d'abord, si on change un peu la taille de l'intervalle des [latex]n[/latex] pour lesquels la courbe noire semble linéaire, la pente change peuet on a un ordre de grandeur assez proche. Bref, ce 80% semble assez robuste,Ensuite, comme cette relation linéaire me surprenait, on a aussi tenté sur des données américaines... et on a exactement le même genre de résultats...Pour aller plus loin, on a tout mis sur github (avec des graphs en ggplot2 pour faire plus joli...) et une version (en anglais) est en ligne sur arxiv.