Déterminismes sociaux et internes en médecine

Comme chaque année, je suis tombé sur un des articles sur le sujet "marronnier" du lien entre prénoms et mentions au baccalauréat :

Du prénom à la mention au bac : des déterminismes sociaux toujours puissants - par Laura Wojcik, Le Monde 10.07.2015

Ayant pas mal d'amis et de connaissances étudiants, internes, et diplômés en médecine, je me suis demandé si je pouvais mettre en évidence le même genre de corrélation au sein des classements aux ECN. Et puis ca me faisait marrer comme petit projet de code / stats.

Les ECN sont les "épreuves classantes nationales" ayant remplacé depuis 2004 le concours de l'internat, passés par tous les étudiants de médecine de France à la fin de leur 2ème cycle (fin de 6ème année).
Chacun choisit sa filière (médecine générale, psychiatrie, anesthésie-réanimation, etc.) son tour venu, dans l'ordre de classement.

Pour ceux qui s'intéressent à la technique, vous pouvez lire le process ci-dessous, sinon allez directement à la Conclusion !

PROCESS

  1. J'ai récupéré les classements depuis 2006 sur le site du CNG (je précise que ce sont des données publiques et publiées dans le J.O.), puis je me suis attelé à écrire un petit script python pour sanitizer tout ça et récupérer uniquement le premier prénom associé au classement, ainsi que le total de candidats pour chaque année qui servira plus tard (et oui parce que ca serait trop simple si il était constant...). Tous les accents / caractères spéciaux ont été supprimés, et les espaces transformés en tirets pour regrouper les prénoms très proches.
    (Je précise au passage que j'ai arbitrairement dégagé 2009 car - allez savoir pourquoi - le fichier est formaté de façon différente des autres et pourri pour le traitement)

  2. Il s'agissait ensuite de faire ressortir des choses intéressantes de ces informations brutes (environ 64000 candidats / classements et 2500 prénoms uniques).

    J'ai fait appel à un de mes meilleurs potes statisticien / data-scientist qui, après avoir voulu me faire télécharger 28 librairies python pour faire du clustering sur test de Kolmogorov-Smirnov en surcouche cuda plotté sur base Bayésienne, a bien voulu m'orienter vers les résidus de Pearson ("Standardized Residuals" en anglais) qui ont un grand intérêt que j'expliquerai plus loin et dont la formule est :

    résidu = (observé - attendu) / racinecarrée(attendu)
    

    La difficulté étant de choisir une "catégorie" sur laquelle observer un score et calculer un score attendu (si les variables était indépendantes i.e. si le prénom n'était pas lié au classement). Pour nous ici le plus simple et sans doute le plus représentatif est de regarder le nombre d’occurrences d'un prénom donné dans le premier quartile et le dernier quartile des classements. Petit rappel :

    premier quartile = total candidats / 4
    -- soit le premier quart de places, les 25% les "meilleurs")
    dernier quartile = total candidats / 4 * 3
    -- soit le dernier quart de places, les 25% les "moins bons")
    

    Par exemple les "Paul dans les premiers quartiles" sont 6. C'est l'observé. Le calcul pour l'attendu est le suivant :

    attendu = (marginal de la ligne) * (marginal de la colonne) / (total de la table)
    

    Pour nous :

    Paul attendus dans les premiers quartiles = total des occurrences de Paul * total de tous les prénoms dans le premier quartile / total des occurrences de tous les prénoms
    = 233 * 16316 / 63968
    = 59.430
    

    L'attendu des "Paul dans les premiers quartiles" est 59.430.

    Et on peut enfin calculer le résidu de Pearson des Paul :

    résidu de Pearson des Paul dans les premiers quartiles = (Paul observés dans les premiers quartiles - Paul attendus dans les premiers quartiles) / racinecarrée(Paul attendus dans les premiers quartiles)
    = (76 - 59.430) / racinecarrée(59.430)
    = 2.149
    

    Le résidu de Pearson des Paul dans les premiers quartiles est donc 2.149.

    Au passage bien sur on en profitera pour faire un petit test d'indépendance du Chi-squared et sortir une p-value grâce à nos attendus déjà calculés ! (que sur le premier quartile parce que je suis flemmard et surtout que je sous-traite le calcul à Toronto et que de toute façon ça doit être kif-kif, na).

  3. J'ai donc écrit un 2ème script prenant en entrée tous mes fichiers, et me donnant pour chaque prénom (avec un tri ne conservant que les prénoms présents plus de 9 fois dans la base, histoire de rester représentatif) le nombre de fois où il était sorti dans le premier quartile et dans le dernier quartile. Ceci étant calculé pour chaque classement d'un prénom selon l'année correspondante (ex. une Noémie en 2006 avec la place 1400 sur 4989 candidats ne sera PAS dans le premier quartile, en 2015 avec la place 1400 sur 8881 candidats sera dans le premier quartile).

    4989 / 4 = 1247     <-- limite du premier quartile de 2006
    8881 / 4 = 2220     <-- limite du premier quartile de 2015
    

    Le script me calcule également tout ce dont j'ai besoin pour obtenir les résidus de chaque prénom (cf le point 2) et la p-value de tout le bousin.

  4. Une fois tous ces données obtenues il faut les trier, et choisir pour cela des critères. C'est là que les résidus interviennent : Sous hypothèse d'indépendance les résidus sont sensés suivre une gaussienne. Si on prend comme critère un résidu > 1.96 ou < 1.96 (seuil de 5%) on peut sortir quelques catégories de prénoms intéressantes (cf conclusions), mettant en évidence sur-représentations ou sous-représentations dans tels ou tels quartiles.

 

CONCLUSIONS

N.B : Pour les points suivants les prénoms seront suivis entre parenthèses de leur résidu de Pearson pour les premiers quartiles / résidu de Pearson pour les derniers quartiles.

  1. La p-value - test d'indépendance du Chi-squared - pour notre lot de prénoms - présents plus de 9 fois dans la base - et concernant les premiers quartiles des ECNs entre 2006 et 2015 compris - excepté 2009 - est de 0.086.
    Donc pas <0.05 pour les cancres, on ne peut pas conclure à une violation de l'hypothèse d'indépendance donc la présence dans les premiers quartiles n'est pas dépendante du prénom...mais un peu quand même tant qu'on a pas plus de données (rendez-vous en 2026), parce que c'est ça les stats maggle.

  2. Les prénoms très sur-représentés dans les premiers quartiles, soit ayant un résidu de Pearson > 1.96 et très sous-représentés dans les derniers quartiles, soit ayant un résidu de Pearson < -1.96 sont :

    • Claire (3.488 / -3.706)
    • Mathilde (2.993 / -4.57)
    • Blandine (2.799 / -2.992)
    • Juliette (2.5 / -2.683)
    • Marion (2.364 / -3.611)
    • Clara (2.241 / -2.215)
    • Carole (2.001 / -2.802)
    • Camille (1.963 / -4.32)

  3. Les prénoms très sur-représentés dans les premiers quartiles, soit ayant un résidu de Pearson > 1.96 sont :

    • Judith (2.566 / -1.782)
    • Louis (2.391 / -0.32)
    • Edouard (2.35 / -1.935)
    • Laureline (2.344 / -1.812)
    • Margot (2.314 / -1.212)
    • Vincent (2.18 / -0.212)
    • Guillemette (2.16 / -0.878)
    • Paul (2.149 / -1.846)
    • Thibaud (2.128 / -0.807)
    • Maximilien (2.119 / -0.6)
    • Jules (2.085 / -1.659)
    • Jean-Philippe (2.025 / -1.212)
    • Jade (2.023 / -1.173)
    • Lisa (2.015 / -0.216)
    • Julia (2.012 / -1.414)
    • Solene (2.001 / -1.874)

  4. Les prénoms très sur-représentés dans les derniers quartiles, soit ayant un résidu de Pearson > 1.96 sont :

    • Marta (-1.747 / 4.521)
    • Eleni (-1.597 / 4.345)
    • Simona (-1.597 / 4.345)
    • Chiara (-0.971 / 4.345)
    • Christina (-1.178 / 4.283)
    • Francesco (-1.078 / 3.997)
    • Mohamed (-1.1 / 3.98)
    • Marco (-1.816 / 3.837)
    • Valentina (-1.75 / 3.687)
    • Silvia (-1.122 / 3.512)
    • Sonia (-0.727 / 3.161)
    • Ali (-1.617 / 3.144)
    • Irina (-1.178 / 3.091)
    • Brahim (-0.345 / 3.04)
    • Ioana (-1.597 / 3.04)
    • Mohammed (-1.597 / 3.04)
    • Claudia (-1.445 / 2.923)
    • Samir (-1.249 / 2.76)
    • Diana (-1.525 / 2.709)
    • Frederic (-0.964 / 2.691)
    • Jean-Francois (-1.076 / 2.534)
    • Dalila (-1.122 / 2.511)
    • Gaetan (-1.674 / 2.5)
    • Anastasia (0.089 / 2.39)
    • Serge (-1.445 / 2.39)
    • Sylvia (-0.971 / 2.387)
    • Gabriela (-0.971 / 2.387)
    • Antonia (0.908 / 2.387)
    • Kamel (-1.597 / 2.387)
    • Patrick (-0.544 / 2.374)
    • Said (-1.209 / 2.326)
    • Meriem (0.278 / 2.287)
    • Natalia (-0.173 / 2.263)
    • Tom (-0.723 / 2.263)
    • Abdelkader (-0.04 / 2.193)
    • Ana (-1.525 / 2.193)
    • Lorraine (-0.839 / 2.153)
    • Cristina (-1.525 / 2.131)
    • Bernard (-1.078 / 2.129)
    • Stefan (-0.481 / 2.129)
    • Joel (-0.481 / 2.129)
    • Sofiane (-1.337 / 2.121)
    • Damien (-0.756 / 2.091)
    • Laurent (-1.483 / 2.067)
    • Georges (-0.831 / 2.051)
    • Fouad (-0.302 / 2.051)
    • Marc-Antoine (-1.249 / 1.993)
    • Nadine (-0.488 / 1.99)
    • Richard (-0.634 / 1.985)

  5. Les prénoms très sur-représentés dans les derniers quartiles, soit ayant un résidu de Pearson > 1.96 et très sous-représentés dans les premiers quartiles, soit ayant un résidu de Pearson < -1.96 sont :

    • Maria (-2.153 / 4.962)
    • Giulia (-2.143 / 4.759)
    • Sofia (-2.187 / 2.39)
    • Elena (-2.203 / 2.266)
    • Nadia (-1.994 / 2.036)

 

Vous savez tout ! Quelques remarques :

  • Il serait intéressant à mon sens de pouvoir coupler ca avec la nationalité des candidats. On retrouve notamment beaucoup de prénoms italiens, arabes et d'Europe de l'Est dans les 2 dernières catégories, est-ce des familles issues de l'immigration, des étrangers, des enfants de fans de Chiara Mastroianni, Nadia Comăneci, ou Brahim Asloum ? Mais ce ne sont pas des données publiques;

  • Il serait aussi de bon ton de faire la même démarche avec le concours de P1/PACES (première année de médecine), mais bon courage pour récupérer les résultats dans toutes les facs de France - vive l'open-data #FrenchTech !

  • Je n'y pense que maintenant mais j'aurai pu sortir l'âge des candidats pour tester si la valeur attend le nombre des années;

  • Si vous voulez connaître les infos sur un prénom en particulier (puisqu'ils sont loin de tous ressortir ici), vous savez où me trouver;

 

Merci à Paul, mon ami statisticien-que-je-comprends-la-moitié-de-ce-qu'il-dit / petit-indien-sous-traitant-numpy-de-Toronto, sans qui je n'aurai pas pu réaliser cette très belle étude qui fera sans nulle doute progresser la science et notre beau pays.

Bises aux copains qui sont tous quelque part dans les tréfonds du listing, ou qui y seront dans les années à venir... ;)

<