Fausse carte d'identité > Articles > Comment auditer un jeu de données de fréquences de noms

Comment auditer un jeu de données de fréquences de noms

Tout jeu de données de noms pondéré formule une affirmation sur un pays, que ses auteurs s'en rendent compte ou non. Quelque part dans le fichier, un nom de famille est le plus courant et un autre le plus rare, et le rapport entre leurs poids affirme quelque chose sur la forme réelle de cette population.

Le difficile, quand on audite un tel fichier, n'est pas de trouver les erreurs. C'est de faire la différence entre « ces données sont cassées » et « ce pays est réellement ainsi ». Vu de l'intérieur du fichier, les deux se ressemblent trait pour trait. Les dix noms de famille les plus courants de Norvège couvrent 6,0 % de la population ; ceux du Vietnam en couvrent environ 71 %. Une courbe plate est un fait dans un cas et un défaut dans l'autre, et vous aurez beau scruter les poids, ils ne vous diront pas lequel des deux vous tenez.

Ce qui suit est l'ensemble d'outils que nous avons construits le 17 juillet 2026, en auditant des corpus de noms pour 63 locales face aux registres nationaux. Deux d'entre eux relèvent de l'arithmétique et répondent directement à la question. La plupart des autres portent sur ce qui n'y répond pas — car les signaux intuitifs, ceux vers lesquels tout le monde se tourne en premier, sont tous faux, et chacun nous a coûté du travail réel avant que nous ne le remarquions.

Le dispositif

Supposons un jeu de données de la forme value → integer weight, le poids étant attribué à partir d'une source de fréquences réelle par

w = round(255 × c / c_top1)      // clamped to a minimum of 1

c est le nombre de porteurs de l'entrée, c_top1 l'effectif de l'entrée la plus courante, et 255 le plafond de l'échelle (un octet non signé). Substituez vos propres constantes — l'algèbre y survit. Ce qui compte, c'est que le poids soit un rapport à l'entrée de tête et qu'il existe un plancher sous lequel l'échelle ne peut pas descendre. C'est sur ce plancher que vit la quasi-totalité des défauts décrits dans cet article.

Outil 1 : la couverture revendiquée

Le poids 1 n'est pas une étiquette vague signifiant « rare ». C'est une affirmation quantitative. Si le poids de l'entrée de tête correspond à sa part réelle de la population, une unité de poids vaut exactement share_top1 / max_weight de cette population — de sorte que le fichier, en additionnant ses propres poids, déclare quelle fraction du pays il croit décrire :

claimed coverage = Σ(weights) × real_share_of_top1 / max_weight

Comparez-la à la couverture réelle du corpus — la somme des parts réelles des entrées effectivement présentes. C'est le seul diagnostic de cette page qui soit falsifiable par la seule arithmétique : un fichier ne peut pas décrire 114 % d'un pays.

Jeu de donnéesCouverture revendiquéeCouverture réelleRapportCe que cela signifiait
zh_CN (avant)114 % de la Chine~91 %Queue objectivement surpondérée. Arithmétiquement impossible
es_ES (avant)200 % de l'EspagneQueue surpondérée du double ; 53 % des entrées plus légères que le poids 1
fr_FR (avant)54,2 %25,6 %2,11×Surestimée de plus du double
fr_FR (après)1,001×Corrigée
no_NO29,2 %30,1 %0,97×Saine — jamais retouchée
lv_LV27,03 %~27,3 %~0,99×Saine malgré 57 % des entrées au poids 1
sv_SE noms de famille57,29 %53,17 %1,077×Saine
zh_TW (après)109,8 %99,61 %1,10×Saine pour une locale concentrée

La ligne zh_TW est une mesure de la version 8 bits et ne décrit plus le fichier livré. Le 18 juillet 2026, cette locale est passée aux effectifs du registre repris textuellement : 2 707 noms de famille, couverture revendiquée 99,98 %, rapport 1,00×. Tout l'effet de « masse fantôme du plancher » décrit plus bas est une propriété des échelles relatives ; il ne s'applique donc pas à un corpus qui stocke des effectifs réels — le rapport y vaut 1,00× par construction, et une lecture supérieure à 1,0 y serait un véritable défaut plutôt qu'un débordement normal. Lisez cette section comme la méthode d'audit des corpus mis à l'échelle sous plafond, ce que sont encore 52 de nos 64 fichiers de noms de famille et 56 sur 64 du côté des prénoms.

La bande saine se situe grosso modo à 1,0–1,1×. Deux choses sont à comprendre à son sujet.

Dépasser 100 % n'est pas automatiquement un défaut. Les entrées dont la part réelle tombe sous la valeur d'une unité de poids pèsent tout de même 1 — l'échelle n'a pas de nombre plus petit. Ce surplus est la masse fantôme du plancher, et sur une locale concentrée il ajoute légitimement quelques pour cent : après correction, zh_CN se situe à 100,7 %, vi_VN à 103,2 %, ko_KR à 108,4 %, zh_TW à 109,8 %. Autour de 110 % sur un fichier concentré, c'est normal. 114 % sous un plafond d'échelle de 100 ne l'était pas — c'était la queue qui revendiquait un pays qui n'existe pas.

C'est un test, pas un contrôle de plausibilité. Menez-le comme un raisonnement par l'absurde et il produit des absurdités à la demande. Le registre suédois des noms de famille tout entier — les 411 798 entrées — donnerait un fichier revendiquant 3 360 % : trente-cinq Suèdes. Le registre taïwanais complet, avec ses 2 730 entrées, revendiquerait 212 % : deux Taïwan. Le top 300 vietnamien complet revendiquerait 125,4 %. Ce ne sont pas des chiffres « suspects » ; ce sont des chiffres impossibles, et c'est l'impossibilité que l'on attend d'un outil d'audit.

Piège : positions contre porteurs

Dans les pays où une personne porte deux noms de famille, les parts de tous les noms de famille totalisent ~200 %, et non 100 %. Donnez à la formule une part de porteurs et elle hurlera au défaut là où il n'y en a aucun.

pt_PT avec Silva à 9,44 % des porteurs donne une couverture revendiquée de 145,4 % — une alarme. Avec le même nom de famille à 4,72 % des positions, on obtient 72,7 %, tout à fait plausible pour un corpus de 411 noms de famille. Même fichier, même formule, verdicts opposés. Les locales espagnoles présentent le même danger, même si le registre y publie séparément les colonnes du premier nom de famille, du second et des deux positions réunies : GARCÍA compte 1 446 937 en tant que premier nom de famille et 2 915 761 sur les deux positions.

Piège : la couverture revendiquée ne choisit pas votre profondeur

Sur une locale hyperconcentrée, la couverture revendiquée tranche la question de la profondeur d'un coup : le top 300 du Vietnam atteint 125,4 % et se trouve ainsi exclu. Il est donc tentant de s'en servir partout comme critère de profondeur.

Cela ne fonctionne pas sur une locale plate, pour une raison arithmétique : une entrée honnête est neutre pour le rapport. Elle ajoute w × share_top1 / max_weight du côté revendiqué et c / POP du côté réel — le même nombre — de sorte qu'elle ne déplace le rapport que par l'arrondi, près du plancher. Pour les noms de famille suédois, le rapport s'est maintenu à 1,055× sur 1 150 entrées et à 1,051× sur 1 261, ne cédant qu'au top 3000 (1,139×). Elle ne répond tout simplement pas à la question « quelle profondeur est la meilleure ».

La couverture revendiquée est un plafond, pas une cible. Pour la profondeur, il vous faut un autre outil.

Outil 2 : le seuil de profondeur — diviser par 510, pas par 255

Jusqu'où un corpus doit-il descendre ? Pas « aussi loin que nous avons des données », et surtout pas à l'œil. Calculez le rang auquel le poids 1 cesse d'être honnête :

threshold = count_of_top1 / 510        ← not /255

Le /510 est tout l'enjeu, et c'est l'erreur que nous avons commise en premier. Puisque w = round(255 × c / c_top1), l'écrêtage entre en jeu là où round() renvoie 0 — là où 255 × c / c_top1 < 0.5, c'est-à-dire c < c_top1 / 510. La formule en /255 donne au contraire le point où le poids honnête vaut 1,0, ce qui n'est pas le point où il disparaît. Elle tronque le corpus deux fois trop tôt ; en Espagne, cette erreur nous aurait coûté 320 noms de famille réels.

Toute entrée située sous le seuil est surestimée par l'écrêtage. Ce qui se trouve en dessous n'est pas une courbe ; c'est un plancher inventé.

Jeu de donnéesUne unité de poids vautSeuilComportement à la frontière
vi_VN0,0598 % de la populationrang 66Lường à 0,061 % — la dernière entrée honnête
sv_SE noms de famille424,5 porteursrang 2130Snygg 425 ; vient ensuite Abdulkadir 424 → poids honnête exactement 0,50
es_ES5 717,2 positionsrang 1743Victoria 5 720 ; vient ensuite Fabregas 5 714 → exactement 0,500
sv_SE prénoms ♂160,3 porteursrang 2008WASSIM 161 → 0,502 ; ensuite BASIL 160 → 0,499
sv_SE prénoms ♀189,1 porteursrang 1850WINNIE 190 → 0,502 ; ensuite AIKATERINI 189 → 0,500

Cinq fois, la frontière est tombée exactement sur le pas d'arrondi — une coïncidence remarquable, à moins que la règle ne calcule au lieu de deviner.

La preuve la plus forte est la dispersion. Un même critère a renvoyé le rang 66 pour le Vietnam et le rang 2 130 pour la Suède. Une règle qui produirait partout des profondeurs voisines serait suspecte ; une règle qui renvoie un écart d'un facteur 32 entre un pays hyperconcentré (Nguyễn ≈31 %) et un pays plat (Andersson 2,06 %) suit quelque chose de réel. Une seule règle, des réponses différentes.

Ce qui ne prouve rien

C'est la section qui compte le plus, car chacun des signaux ci-dessous est intuitif, largement utilisé et sans valeur pris isolément.

« Une part énorme des entrées se trouve au poids minimal »

Le plus séduisant. Cela ressemble exactement à une queue écrasée, et parfois c'en est une. Mais uk_UA a 80 % de son corpus au poids 1 alors que sa part du top 10 est tout à fait normale — 29,4 %, à l'intérieur de la bande 20–35 %. Les noms de famille lettons sont à 57 % au poids 1, et la formule de couverture blanchit le fichier à ~0,99×.

La masse au plancher est un fait sur la courbe des poids, non sur la composition de la liste. Notre propre liste de travaux a un jour exigé de nettoyer « ~1 900 noms de famille ukrainiens artificiels », un chiffre dérivé de « 1 902 entrées au poids 2 ». Un échantillon aléatoire de 25 entrées n'a révélé aucune entrée artificielle ; dans tout le fichier, le nombre d'entrées dont le caractère artificiel est démontrable était d'environ 2 à 10, sur 2 209. Ne devinez pas — calculez la couverture revendiquée.

« La tête est collée au plafond de l'échelle »

Séduisant lui aussi, sans valeur lui aussi pris isolément. no_NO avait un poids de pointe d'exactement 100 sous l'ancien plafond de 100 — et il était correct : top 10 à 19,87 % contre une cible honnête de 20,03 %, couverture revendiquée/réelle 0,97×. Le rapport naturel entre la tête et le plancher en Norvège est de 87:1, ce qui tient sous 100 avec de la marge. La pointe se trouvait au plafond par coïncidence, non par compression.

lv_LV illustre le cas inverse avec une pointe de 40, qui ne prouve rien non plus : la Lettonie est simplement plate, son nom de famille de tête couvrant 0,60 % de la population. Une pointe de 40 y est juste de la même manière qu'une pointe de 100 est juste en Norvège.

Ce qui est diagnostique, c'est la conjonction : une pointe au plafond et plus de 25 % du corpus au poids 1. Ce couple a identifié 52 jeux de données qui étaient réellement à court d'échelle. Chacune des deux moitiés, prise seule, n'a rien identifié.

Vérification circulaire

Le piège le plus dur de cet article, et nous y sommes tombés deux fois indépendamment en une seule journée. La tentation est irrésistible : notre chiffre coïncidait avec une source indépendante, donc nous ne l'avons pas ajusté. Avant d'accepter cela, vérifiez si la source est bien indépendante.

Nos noms de famille ethnonymiques hongrois représentent 8,20 % du poids du fichier. L'estimation académique — Farkas — situe le stock ethnonymique à « 7–8 % ». Cela ressemble à un cas d'école de validation externe. Il n'en est rien. Nos poids ont été calibrés sur les parts du registre (Tóth à 2,192 % contre 2,19 % au registre), et Farkas tire ses chiffres du même registre. Un seul jeu de données compté deux fois, et non deux mesures.

Une seconde variante : le contrôle « part du top 10 × couverture revendiquée = part de la population ». Sur les données espagnoles, il converge à 0,00 point de pourcentage près. Il est aussi, pour la tête de la distribution, presque exactement une tautologie — tout ce qu'il démontre, c'est que l'erreur d'arrondi est négligeable. La comparaison substantielle dans ce fichier opposait la couverture revendiquée (73,2 %) à la couverture réelle (67,55 %), et celle-là révélait bien un problème.

La règle : si vos poids ont été calibrés à partir de la source X, alors toute comparaison avec X — ou avec un article qui cite X — est un contrôle de cohérence, pas une confirmation. Les contrôles de cohérence sont utiles ; ils détectent les erreurs de calcul. Appelez-les simplement par leur nom.

À quoi ressemble un véritable contrôle indépendant. Le Vietnam n'a pas de registre d'État des noms de famille, mais il dispose de deux grands échantillons aux biais régionaux opposés : VNTH01 (n = 1 682 729, pondéré vers le nord 63:37) et SG01 (n = 241 000, Hô Chi Minh-Ville). Ils convergent sur Nguyễn ≈ 31 % — respectivement 30,5 % et 31,5 %. Un troisième échantillon, évalué par les pairs (Nguyen Viet Khoa, Genealogy 8(1):16, 2024, n = 883 835), aboutit à 31,57 % et confirme indépendamment le sens du biais nordique de VNTH01. Méthodologie différente, populations différentes, biais pointant en sens contraires, même réponse. Cela, c'est une confirmation — et elle a démoli le chiffre que tout le monde cite, car Nguyễn = 38 % remonte à un unique échantillon de 1992, repris partout non parce qu'il est bon, mais parce qu'il était le seul publié.

L'autre forme que prend un contrôle authentique est une prédiction qui aurait pu échouer. Notre corpus islandais a été construit par des personnes convaincues qu'environ 10 % des Islandais portent un nom de famille hérité plutôt qu'un patronyme ; elles s'attendaient à ce que le fichier reste à moitié en deçà. Le fichier mesure 4,15 % (97 sur 2 335) et l'office national de la statistique mesure 4 %. La concordance est réelle précisément parce que les constructeurs du fichier s'attendaient à ce qu'elle échoue.

Le défaut que seules deux métriques peuvent voir ensemble

Avant correction, notre fichier suédois de prénoms masculins dépassait sa cible honnête de top 10 — 22,02 % contre 18,31 % — tout en sous-revendiquant sa couverture, à 0,874×.

Lisez l'une ou l'autre métrique seule et vous conclurez que le fichier va bien, ou au pire que la pointe est un peu basse. Lisez-les ensemble et le diagnostic devient sans ambiguïté : ce n'est pas un problème d'échelle, c'est une tête construite séparément du milieu. Le top 10 était trop pointu et les rangs 11–317 étaient trop légers. Rien d'autre que le couple de métriques ne le révèle.

La cible se déplace

Le dernier outil, et celui qui conduit le plus souvent à annuler une correction pourtant juste.

Quand nous avons approfondi le corpus suédois des noms de famille de 1 150 à 2 445 entrées, sa part du top 10 a chuté de 28,83 % à 21,62 % — en apparence une régression catastrophique. Elle n'en est pas une. La cible honnête est real_top10 / real_coverage, et la couverture est passée de 40,73 % à 53,17 % ; la cible elle-même s'est donc déplacée de 30,40 % à 23,28 % :

MétriqueAvantAprès
Entrées1 1502 445
Top 10 dans le fichier28,83 %21,62 %
Cible honnête30,40 %23,28 %
Déficit1,57 pp1,66 pp
Couverture réelle40,73 %53,17 %
Revendiquée / réelle1,055×1,077×
Manquants dans le top 300440

Le déficit est identique aux deux profondeurs. La profondeur n'a rien coûté en exactitude et a rapporté +12,4 points de couverture réelle. La chute de la part du top 10 relève de la mécanique du dénominateur, pas d'une régression — la queue ajoute de la masse au dénominateur. Même effet, poids inchangés d'un bout à l'autre : les noms de famille italiens, passés de 556 → 1 340 entrées, ont fait passer le top 10 de 12,2 % à 6,9 % ; les russes, de 701 → 1 303, l'ont fait passer de 10,08 % → 6,36 % ; les polonais, de 689 → 1 272, de 9,50 % → 6,43 %.

L'erreur voisine consiste à comparer une part à l'intérieur du fichier avec une part dans la population. Le top 10 des noms de famille américains couvre 4,90 % des Américains ; notre corpus de 1 864 noms de famille couvre 42,29 % des Américains ; à l'intérieur de ce fichier, le top 10 mesure donc 4.90 / 42.29 = 11,59 %, et c'est correct. Même réalité, dénominateurs différents. Ne « corrigez » pas cela.

Et certains déficits ne devraient jamais être comblés. Les noms de famille coréens vont de , à 21,5 % de la population, jusqu'à , avec 7 porteurs — 1 527 138:1 face à une échelle qui offre 255:1. Une unité de poids y vaut 41 921 personnes, si bien qu'environ 130 noms de famille ultra-rares reposent sur un plancher qui les surestime de trois ordres de grandeur, ce qui ajoute ~8 % de masse fantôme au dénominateur. Le fichier plafonne à 60,6 % contre 65,8 % en réalité, et combler cet écart signifierait supprimer 65 noms de famille réels. Un déficit de quelques points sur une telle locale est la bonne réponse, pas un défaut.

La liste de contrôle

  1. Calculez la couverture revendiquée avant de vous faire la moindre opinion. Σ(w) × share_top1 / max_weight. Au-dessus de ~110 % sur une locale concentrée, ou de ~100 % sur une locale plate, la queue est surpondérée — objectivement, et non de manière discutable.
  2. Contrôlez d'abord votre unité. Positions contre porteurs, naissances contre porteurs vivants, une écriture contre une autre. La mauvaise unité fabrique des défauts et en dissimule de réels.
  3. Calculez le seuil de profondeur comme count_of_top1 / 510. Pas /255. Vérifiez que la frontière tombe sur le pas d'arrondi ; si ce n'est pas le cas, votre source et votre diviseur sont en désaccord.
  4. Utilisez la couverture revendiquée comme un plafond, pas comme une cible. Elle ne choisira pas votre profondeur sur une locale plate — les entrées honnêtes sont neutres pour le rapport.
  5. Ne concluez jamais à partir de la seule masse au plancher. 80 % au poids 1 est compatible avec un fichier parfaitement sain.
  6. Ne concluez jamais à partir de la seule pointe au plafond. Exigez la conjonction : pointe au plafond et >25 % au plancher.
  7. Lisez deux métriques ensemble. Un fichier au-dessus de sa cible et qui sous-revendique sa couverture a une tête détachée de son milieu — invisible pour chacune prise seule.
  8. Interrogez chaque concordance. Si les poids viennent de X, la concordance avec X est de la cohérence, pas une confirmation. Demandez-vous quel résultat aurait falsifié le contrôle.
  9. Recalculez la cible après avoir changé la profondeur. Une part du top 10 qui baisse après un approfondissement relève de l'arithmétique, pas d'une régression.
  10. Acceptez les déficits que l'échelle impose. Atteindre une cible en supprimant des entrées réelles, c'est ajuster les données à la cible — précisément ce que votre audit cherchait à débusquer.

Données arrêtées au 2026-07-17

Tous les chiffres ont été mesurés le 17 juillet 2026, pendant la construction et l'audit de corpus de noms pondérés pour 63 locales face aux registres nationaux. ⚠ Le corpus comptait 63 locales au moment où ces chiffres ont été mesurés ; en_IE a été ajoutée le 18 juillet 2026 et il en compte 64 aujourd'hui. Les parts décrivent la population, sauf lorsque le texte dit « dans le fichier » ou « positions » ; lorsque des chiffres proviennent d'un échantillon plutôt que d'un registre, le texte le précise. Les exemples hongrois, espagnol et islandais sont rapportés tels que nous les avons trouvés, y compris les cas où notre propre raisonnement était faux.

Sources :

  • Taïwan, Ministry of the Interior — classements et effectifs des noms de famille, 30 juin 2023 : data.gov.tw/dataset/126774
  • Espagne, INE — noms de famille comptant ≥20 porteurs, recensement du 1er janvier 2025 : ine.es/dyngs/INEbase/operacio…?…
  • France, INSEE — Fichier des noms de famille, naissances 1891–2000 : insee.fr/fr/statistiques/353663…
  • Suède, SCB — noms de famille (411 798 entrées, 96,1 % de la population) et prénoms tilltalsnamn, 31 décembre 2022 : scb.se
  • Norvège, SSB — statistiques des noms de famille, table StatBank 12891 : ssb.no/statbank/table/12891
  • Danemark, Danmarks Statistik — statistiques des noms : dst.dk/da/Statistik/emner/bor…
  • Lettonie, CSP — recensement de 2021, noms de famille de 1 893 223 résidents permanents : stat.gov.lv
  • Corée du Sud, KOSTAT — recensement de la population et des logements de 2015, statistiques des noms de famille : kostat.go.kr
  • Chine, Ministry of Public Security — tableau des 100 noms de famille les plus courants, 2007
  • Vietnam — jeux de données de fréquences hoten.org VNTH01 (n = 1 682 729) et SG01 (n = 241 000), CC BY 4.0 tel que déclaré dans le texte de la page ; Nguyen Viet Khoa, « Vietnamese Family Names », Genealogy 8(1):16 (2024) : doi.org/10.3390/genealogy80100…
  • Islande, Hagstofa Íslands — noms de famille et patronymes, 1er janvier 2017 : hagstofa.is

← Articles