class: center, middle, inverse, title-slide # Les prénoms québécois d’hier à aujourd’hui ## Rendez-vous analytique 2022 ### J.P. Le Cavalier ### 3 juin 2022 --- ## Objectifs - Analyser les **tendances** de prénom au Québec; - Développer quelques **métriques** d'intérêt. --- class: inverse center middle # Nettoyage des données --- ## Données brutes Les données de prénom à la naissance au Québec (depuis 1980) sont publiées anuellement par [Retraite Québec](https://www.retraitequebec.gouv.qc.ca)<sup>1, 2</sup>. #### Extrait des données brutes pour les filles ``` ## Prénom/Année 1980 1981 1982 ... 2019 2020 2021 ## 1: A 0 1 1 ... 0 0 0 ## 2: AABIA 0 0 0 ... 0 0 0 ## 3: A ABIGAIL 0 0 1 ... 0 0 0 ## 4: AABISHA 0 0 0 ... 0 0 0 ## 5: AABLA 0 0 0 ... 0 0 0 ## --- ## 207735: ZYVA 0 0 0 ... 0 0 0 ## 207736: ZYVAH 0 0 0 ... 0 0 0 ## 207737: ZY YU 0 0 0 ... 0 0 0 ## 207738: ZZENARRA 0 0 0 ... 0 0 0 ## 207739: Somme: 48152 47365 46180 ... 41010 39834 40620 ``` .footnote[ [1] https://www.donneesquebec.ca/recherche/dataset/banque-de-prenoms-garcons [2] https://www.donneesquebec.ca/recherche/dataset/banque-de-prenoms-filles ] --- ## Transformation des données .pull-left[ - On combine les données garçons et filles; - On supprime la ligne des totaux; - On renomme les colonnes; - On passe d'un format large à un format long. ] .pull-right[ #### Extrait des données transformées ``` ## sex name year nb ## 1: M A 1980 0 ## 2: M AAACO 1980 0 ## 3: M AAARICK 1980 1 ## 4: M AABAN 1980 0 ## 5: M AABAN BURHAN 1980 0 ## --- ## 17218442: F ZYSHAWNA 2021 0 ## 17218443: F ZYVA 2021 0 ## 17218444: F ZYVAH 2021 0 ## 17218445: F ZY YU 2021 0 ## 17218446: F ZZENARRA 2021 0 ``` ] --- ## Exemple d'incohérence dans les données <img src="img/data-inconsistency-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Nettoyage des données - Les données brutes n'ont déjà aucun **signe phonétique** (accents, tréma, cédille); - On remplace les **traits d'union** par des espaces; - On corrige manuellement les prénoms **tronqués** populaires<sup>3</sup> non ambigus; - Exemples : - **J-PHILIPPE** → J PHILIPPE → **JEAN PHILIPPE** - **P-OLIVIER** → P OLIVIER → {PIER OLIVIER, PHILIPPE OLIVIER} → **P OLIVIER** .footnote[ [3] Pour être corrigé, un prénom doit apparaître au moins 30 fois dans les données. ] --- ## Exemple de prénoms homonymes <img src="img/data-namesake-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Regroupement des prénoms homonymes - Tâche complexe, particulièrement en français<sup>4</sup>; - On approxime avec la **distance de Levenshtein** : - Substitution (+1) - Insertion (+1) - Suppression (+1) - On propose des groupements parmi les prénoms populaires<sup>5</sup> avec une distance de Levenshtein **inférieure à 3**; - On accepte manuellement les propositions qui sont des homonymes; - Exemples : - On <span style="color: limegreen;">accepte</span> de regrouper **STEPHANIE** et **STEFANIE** (distance de 2) - On <span style="color: tomato;">refuse</span> de regrouper **AMELIE** et **AMELIA** (distance de 1) .footnote[ [4] Certains algorithmes spécifiques aux langues ont été implantés dans la librairie JavaScript [Talisman](https://yomguithereal.github.io/talisman/). [5] Pour être considéré, un prénom doit apparaître au moins 300 fois dans les données. ] --- class: inverse center middle # Analyse des tendances --- ## La génération Y (1981-1996) <img src="img/gen-y-1.png" width="100%" style="display: block; margin: auto;" /> --- ## La génération Z (1997-2012) <img src="img/gen-z-1.png" width="100%" style="display: block; margin: auto;" /> --- ## La génération Alpha (2013-2028) <img src="img/gen-alpha-1.png" width="100%" style="display: block; margin: auto;" /> --- class: inverse center middle # Métriques d'intérêt --- ## Normalisation et lissage des données - On utilise le **pourcentage (%)** des naissances à chaque année; - On utilise une **moyenne mobile** 3 ans. --- ## Données classiques <img src="img/original-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Données normalisées par naissances annuelles <img src="img/normalize-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Données lissées par moyenne mobile 3 ans <img src="img/moving-average-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Mesure de stabilité On utilise le **coefficient de variation (CV)** de la moyenne mobile 3 ans du pourcentage des naissances annuelles dans le temps où `$$CV = \frac{\sigma}{\mu}$$` --- ## Stabilité faible <img src="img/low-stability-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Stabilité élevée <img src="img/high-stability-1.png" width="100%" style="display: block; margin: auto;" /> --- class: inverse center middle # Pour ceux qui ne sont pas au courant... -- # . -- ### Je deviendrai papa d'une <span style="color: deeppink;">petite fille</span> en novembre prochain! --- ## Objectif réel - Aider Sarah et moi à trouver un prénom de bébé! -- ### Contraintes Le prénom doit être... - actuel, mais pas trop populaire; - facile à écrire pour un inconnu; - composé uniquement de caractères alphabétiques (aucun accent, espace, trait d'union, etc.); - le plus intemporel possible. --- ## Actuel, mais pas trop populaire - Le prénom doit être **dans le top 100** de la génération Alpha; - Le prénom doit être **hors du top 5** de la génération Alpha. --- ## Actuel, mais pas trop populaire <img src="img/before-drop-top-10-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Actuel, mais pas trop populaire <img src="img/drop-top-10-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Facile à écrire pour un inconnu <img src="img/namesake-criteria-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Facile à écrire pour un inconnu - Le prénom doit avoir **au maximum 2 variantes** d'écriture différentes; - Le prénom doit avoir une **majorité claire** pour une variante (au moins 80% des cas). --- ## Facile à écrire pour un inconnu <img src="img/before-drop-namesakes-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Facile à écrire pour un inconnu <img src="img/drop-namesakes-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Composé uniquement de caractères alphabétiques - On élimine les **prénoms composés**; - On élimine les prénoms avec des **accents**, **cédilles** et/ou **trémas**<sup>6</sup>. .footnote[ [6] On n'a pas cette information dans les données, on procède donc manuellement ] --- ## Composé uniquement de caractères alphabétiques <img src="img/before-drop-non-ascii-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Composé uniquement de caractères alphabétiques <img src="img/drop-non-ascii-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Le plus intemporel possible - On élimine les prénoms qui ont un **coefficient de variation supérieur à 1**. --- ## Le plus intemporel possible <img src="img/before-drop-non-timeless-1.png" width="100%" style="display: block; margin: auto;" /> --- ## Le plus intemporel possible <img src="img/drop-non-timeless-1.png" width="100%" style="display: block; margin: auto;" /> --- class: inverse center middle # À suivre dans 5 mois... --- class: thanks-page background-image: url(logo.svg) background-size: 320px background-position: 5% 90% # Merci! .pull-right[ <a href="mailto:jplecavalier@me.com">
jplecavalier@me.com </a> <a href="https://www.linkedin.com/in/jplecavalier/">
@jplecavalier </a> <a href="https://jplecavalier.rbind.io/">
jplecavalier.rbind.io </a> <a href="https://github.com/jplecavalier/firstname-study">
Code source </a> ]