Annals of Youtube Science 1(14): Survey Methods 101

Le Pew Research Center (chaîne Youtube), qui fournit d’excellentes données socio-démographiques sur la population américaine, a lancé une série de vidéos sur les méthodes d’enquête, dont voici le premier épisode sur l’échantillonnage aléatoire :

Cette vidéo tranche avec les erreurs et les approximations que l’on trouve malheureusement dans plusieurs autres descriptions « grand public » des méthodes d’enquête, ce à quoi il faudrait faire quelque chose, mais le temps manque.

Les autres vidéos de la série « Methods 101 » du Pew Research Center sont identifiables via leur blog Fact Tank, également présent sur Twitter.

Et pour un autre exemple de très bonne vidéo explicative sur les difficultés des enquêtes en population générale, voir « How Pew Research Center Conducted Its 2017 Survey of Muslim Americans », au sujet de cette enquête.

Analyse de données en SHS : matériau Quantilille 2017 et autres bonnes adresses

Un bref billet pour rediriger nos lecteurs estivaux vers le blog d’ElementR, où Laurent Beauguitte a mis les slides qu’il a présentées, avec d’autres, à l’école d’été Quantilille il y a quelques semaines :

Les slides sont livrées avec plein de code R, ce qui vous permet de revivre la formation chez vous, avec un verre de jus de fruits à la main. Que demande le peuple ?

Quelques remarques

  • La séance sur l’analyse multivariée se concentre en réalité (et à moins que j’ai parcouru le code trop vite) sur la seule analyse géométrique, récemment très bien décrite par Julien Duval dans un long article sur le nouveau portail Politika, mais dont on ne dira jamais assez qu’elle est encore plus justiciable des accusations de « boîte noire » que l’analyse par régression (linéaire ou pas).

    Cette remarque n’est pas une critique du choix de l’auteur de ce module, qui utilise, de surcroît, l’excellent package FactoMineR. Ma remarque s’adresse plutôt aux petits rigolos qui s’amusent, dans certaines conférences de sciences sociales, à parler de « boîte noire » au sujet des analyses par régression, alors même qu’à peu près personne, parmi les utilisateurs de l’analyse géométrique, n’est capable d’expliquer, par exemple, comment s’extrait un eigenvector. À l’inverse, le principe d’une dérivée partielle est très vite compris et très fréquemment maîtrisé parmi les « boîte-noiristes » de la régression.

  • La séance sur la cartographie utilise le sublime package cartography de Timothée Giraud, déjà mentionné il y a peu. Excellente nouvelle par ailleurs : le package cartography se fondera, à partir de sa version 2.0, sur le package sf.

  • La séance sur l’analyse textuelle utilise plein d’outils, dont le plugin R Commander « R.TeMiS », qui dispose d’un blog sur Hypothèses.

    Je suis personnellement très peu enthousiaste à l’idée d’utiliser R via R Commander, dans la mesure où cela me semble éloigner l’utilisateur de l’objectif de reproductibilité des résultats, et de compréhension de la tambouille computationnelle qui les sous-tend. En même temps (expression à la mode), je n’y connais fichtre rien en analyse textuelle.

  • La séance sur les réseaux utilise notamment le package igraph, évoqué sur ce blog à plusieurs reprises. J’aurais également recommandé le package tnet, pour les situations, plus fréquentes que l’on ne le pense généralement, où il faut manipuler des réseaux pondérés.

Ce billet me fait réaliser que je n’ai pas contribué à « Introduction à l’analyse d’enquêtes avec R et RStudio » depuis bien longtemps, et que mon propre matériau de formation à R (en anglais, mais également pour des débutants en sciences sociales), qui date de 2013, a très sérieusement besoin d’une mise à jour… Voyons ce que j’arrive à faire cet été.

Enfin, pour terminer, je tiens à citer la désormais légendaire Introduction à R [et RStudio] de Julien Barnier, que les utilisateurs francophones de R seront nombreux à avoir lu. Julien Barnier enseignait dans le module Quantilille recensé dans ce billet.

Bonne lecture !

Annals of Youtube Science 1(11) : Sur la science des données

Numéro un peu spécial des Annals, car ce n’est pas une (ou plusieurs) conférences que je recommande ici, mais une série d’interviews, les « DataChats » de la plateforme de formation DataCamp (chaîne Youtube), qui propose des cours de Python et de R en ligne. Les entretiens sont réalisés avec certains des enseignants qui font le catalogue de cours de DataCamp, et qui est probablement l’un des meilleurs catalogues de cours en ligne pour se former en « science des données »1.

Voici le sixième épisode de la série, avec la statisticienne Jo Hardin, qui présente son cours sur le bootstrapping :

Je vous conseille vraiment toute la série d’entretiens (15-20 minutes chacun), dont voici les cinq premiers :

  1. Max Kuhn, le créateur du package R caret

  2. Garrett Grolemund, l’un des data scientists de RStudio, et le co-auteur, avec Hadley Wickham, de R for Data Science

  3. Charlotte Wickham, qui a un superbe CV d’enseignante en statistiques

  4. David Robinson, data scientist chez Stack Overflow, le site de programmation où quelqu’un a (presque) toujours une réponse à votre question (si elle est bien posée), et l’auteur d’un de mes packages R favoris, broom (brève présentation)

  5. Ron Pearson, qui donne un cours de visualisation de données avec R, et qui a tout un tas de concepts intéressants à partager (in-liers, disguised missing data), en plus d’une réflexion très intéressante sur le machine learning.

  1. Je n’ai évidemment aucune action chez DataCamp, mais j’aime beaucoup leur catalogue (sans rien avoir acheté chez eux), et j’apprécie d’autant plus qu’ils ont mis en ligne une version « light » de leur plateforme d’enseignement. []

Enseigner le “quanti”

enseigner-le-quanti Vous l’aviez vue annoncée sur le blog Quanti / Sciences sociales : hier avait lieu la journée d’étude “Enseigner le quanti dans le supérieur”, à l’initiative d’un comité d’organisation qui incluait notamment Pierre Mercklé et Anton Perdoncin, qui s’occupe du Séminaire de quantitativisme réflexif.

Cette journée m’a renvoyé quelques années en arrière : à Édimbourg, en 2008, les enseignants de méthodes quantitatives avaient créé un petit groupe de réflexion de quantitativistes, dont la liste de discussion s’est tarie en 2013. La journée d’étude d’hier avait une toute autre dimension : il devait y avoir 75 enseignants d’un peu partout.

La réflexion portait sur l’enseignement des méthodes quantitatives, assez rarement évoqué sur ce blog de manière frontale, sauf peut-être indirectement par les utilisations de logiciels comme Microsoft Excel (il y a longtemps), Stata (pendant plusieurs années) ou R (depuis quelques années).

La journée était très bien fichue, et je vous conseille vivement de garder un oeil sur le blog Quanti / Sciences sociales pour en récupérer ce qui en ressortira. L’enseignement du « quanti » est un secteur intéressant à plus d’un titre, et ce qui s’y produit en termes de pédagogie vaut peut-être un détour particulier.

De mon côté, j’ai retenu les points suivants :

  • L’enseignement du « quanti » est profondément par le stigmate d’être, au mieux, inintéressant (voire traumatique) pour un public qui conçoit les sciences humaines comme des humanités littéraires.
  • Le premier thème qui revenait systématiquement dans toutes les discussions était toujours celui du support informatique (du logiciel à utiliser). La seule transition qui revient tout le temps est celle vers R.
  • Le second thème qui revenait de manière latente était celui des données : des conditions éthiques et juridiques de l’accès aux données, mais aussi du type d’enquête à employer, et de ce qu’il serait possible d’envisager à l’avenir.

Le dernier point est intéressant, parce qu’il montre bien qu’il y a une forme d’ingéniérie (voire même un style cognitif) du maniement de données, qu’elles soient quantitatives ou pas, d’ailleurs—ce qui ouvre la perspective d’un enseignement du « quanti » assez proche des compétences regroupées sous l’intitulé hybride data science.

La conséquence pour l’enseignement me semble être qu’il faut envisager trois échelles parallèles de progression pédagogique :

  • une échelle d’apprentissage technique, celle de l’outil informatique et du logiciel utilisé, en particulier dès qu’il s’agit de rendre les analyses réplicables ;
  • une échelle d’apprentissage formel, qui consiste, d’une manière ou d’une autre, à faire comprendre ce que l’on mesure, et avec quelle marge d’erreur ; et
  • une échelle d’apprentissage disciplinaire, qui consiste à (faire) comprendre comment les deux apprentissages précédents contribuent à celui de le discipline.

Sur ce dernier point, mais Étienne l’a exprimé mieux que moi, la contribution du « quanti » aux sciences sociales passe en partie par sa capacité à fournir des données d’enquête, mais aussi des données intégralement numériques (initialement produites sur Internet).

Enfin, je profite de ce billet pour citer le blog ElementR, que je ne mentionne pas assez souvent. Le blog est animé par une équipe d’utilisateurs de R venant de plusieurs laboratoires de sciences sociales. À souligner dans leur excellente série de tutoriels, l’ouvrage (gratuit) “R et espace”, pour apprendre la cartographie et l’analyse spatiale avec R.

Mise à jour : les slides des interventions sont en ligne !

Open data et politique de santé

L’apéro Science & Web #33 de jeudi prochain à La Penderie sera consacré à l’open data en santé, qui pose toutes sortes de questions similaires à celles que l’on peut trouver dans l’histoire des politiques de surveillance épidémiologique.

Si le sujet vous intéresse, j’y ferai un petit topo au croisement de cette recherche, dont j’ai déjà résumé le contenu, et du contexte français actuel, qui ne ressemble pas à ce qui se fait dans d’autres systèmes de santé. Pour changer, il n’y aura pas de code R.

Ça commence à 19h30, pendant les happy hours.

Mise à jour #1 : on a raisonnablement profité des happy hours. La suite à l’Open Data Day de l’Open Knowledge Foundation, ce samedi !

Mise à jour #2 : une partie de cette intervention a été publiée dans un article co-écrit avec Samuel Goëta, et publié par la revue Statistique et société, déjà évoquée ici.

Le numéro spécial porte sur les données de santé et contient des contributions de spécialistes du SNIIRAM, de la cohorte Constances et de plein d’autres choses. Servez-vous, c’est gratuit et en ligne.

Screen Shot 2014-06-10 at 7.37.52 PM

Porngrams avec R

Pour celles et ceux qui auront besoin d’inclure les résultats de Sexualitics dans leurs papiers, voici la fonction R qui renvoie le graphique correspondant, avec la possibilité de visualiser jusqu’à dix mots-clés :

porngram("asian", "american", "french", adjust = FALSE)

porngram1

Il est assez fréquent de vouloir ajuster les courbes en incluant un diviseur commun pour contrôler par le volume de données disponible pour chaque année. Reprise du même exemple avec ce paramètre :

porngram("asian", "american", "french", adjust = "xxx")

porngram2

La fonction reprend des bouts de code que j’avais écrit pour le package ngramr. Malheureusement, les données de Google Ngram s’arrêtent en 2008, ce qui ne permet pas d’ajuster les Porngrams par les Ngrams.

Un exemple plus complet :

geo

Pour analyser ces bêtises, il faut faire un petit effort de manipulation en différenciant la série temporelle de chaque mot-clé sur les années 2008-2012, et en extrayant les composantes principales de la transposée du résultat : l’année 2011 est celle où les variations de volume des mots-clés sélectionnés ont été les plus importantes.

Lancement de la revue “Statistique et société”

Emmanuel Didier, dont les lecteurs de ce blog ont déjà entendu parler à propos de statactivisme (conférence, émission), a annoncé cette semaine la mise en ligne du premier numéro de Statistique et société :

S & S

Cette revue se propose de montrer comment la statistique intervient dans la société, y joue un rôle souvent inaperçu, et est en retour transformée par elle.

L’information d’ordre statistique irrigue la société contemporaine de part en part, et lui donne sa propre inflexion. Il suffit de feuilleter le journal pour voir qu’elle se trouve dans chacune de ses sections : l’économie bien sûr ; la politique aussi avec les sondages ou le souci d’efficacité mesurée par des objectifs quantitatifs ; l’éducation, qui engendre non seulement des notes, mais aussi de très nombreuses enquêtes ; la santé, qui pose des questions de politique publique ; les affaires étrangères qui ont besoin de chiffres pour mettre en évidence les rapports de force entre États ; et même la culture que l’on pourrait croire rétive à la quantification, qui est pénétrée partout par des équivalents de l’audimat. D’une façon ou d’une autre, et de manière plus ou moins explicite, les statistiques sous toutes leurs formes participent au débat public.

La revue Statistique et Société, une revue de la Société Française de Statistique, se donne pour objectif de mettre en évidence les effets propres de ces quantités. Nous faisons le pari que l’on comprend mieux notre actualité si on l’envisage depuis ce point de vue, crucial mais pourtant souvent laissé dans l’ombre.

Cette revue va certainement contribuer à faire progresser les “sciences sociales du statistique”, qui sont bien représentées en sociologie des sciences et qui parlent de plus en plus fréquemment dans d’autres “langues sociologiques”, aidée dans cette évolution par la sociologie économique, la sociologie de la quantification, de la valuation, …

Ce blog trahit régulièrement sa curiosité en la matière : vous connaissez déjà mon attachement personnel à cette thématique1, et j’imagine sans difficulté que Joël sera content de parcourir un article comme “Faut-il confier à des statisticiens des responsabilités en matière électorale ?” Nos billets parlent souvent de statistiques parce que cette notion nous fait travailler au double titre d’enseignants en méthodes quantitatives et de sociologues rencontrant les statistiques à chaque coin de page de nos terrains respectifs.

Pour en revenir à la revue, les articles sont (très) courts et font parfois penser à ceux de l’initiative History and Policy, un réseau d’historiens britanniques qui publie des textes avec la volonté d’occuper un espace de réflexion tiers-sécant entre l’université et la décision publique. Le premier numéro contient un éditorial de Cédric Villani, qui évoque la légitimité du boson de Higgs en parlant de sa précision à “cinq sigma2.

Bonne lecture (et jetez un coup d’oeil aux Cafés de la statistique) !

  1. Réflexivement, je crois que c’est mon intérêt pour la notion de causalité (autre lancement revue à suivre) qui m’a entraîné sur ce domaine, outre ma curiosité dévorante pour la programmation statistique. []
  2. La physique fait, comme tout le monde, des choses assez étranges aux erreurs standard, en particulier à travers sa technique de modélisation connue sous le nom de “sigma clipping”, une sorte de rabot statistique (ce n’est pas la seule technique de “découpage” connue dans le domaine : on peut aussi faire des sandwiches avec les erreurs standard, même si ce n’est pas très recommandé). []

Une introduction à l’analyse des données avec R

Ivaylo Petev et moi-même venons de terminer notre premier cours d’analyse de données avec R, à destination d’étudiants en deuxième année de sciences politiques à Sciences Po Reims, le campus euro-américain de Sciences Po Paris. L’intégralité du cours est disponible sur GitHub, à l’image de ce que Jeff Leek a proposé pour son cours d’analyse de données sur Coursera. Plusieurs sections du cours, qui a été donné en langue anglaise, sont encore en travaux.

Outre les séances introductives sur les formats (objets, fonctions, import/export, etc.), nous avons composé plusieurs exercices pratiques : l’analyse d’un modèle du Fonds Monétaire International, une réplication des graphiques de Thomas Piketty et Emmanuel Saez sur les hauts revenus aux États-Unis (ci-dessous), des graphiques sur la crise immobilière, les homicides par armes à feu, les partis politiques britanniques, la concentration du marché des navigateurs Internet, …

piketty-saez

Nous avons eu l’immense plaisir de recevoir Joël, Alexandre et Samuel comme intervenants ponctuels; merci les gars, vous avez été *très* appréciés ! Nous attendons à présent les derniers travaux des étudiants et leurs évaluations pour tirer le bilan de cette expérience pédagogique. J’ai par ailleurs soumis une brève communication orale à R Lyon 2013, en proposant de tirer le bilan de cet enseignement afin de voir comment R peut s’enseigner en licence de sciences sociales.

J’espère pouvoir y présenter les fonctions que nous avons rédigé pour détecter et installer des packages (déjà mentionnées ici), et pour importer facilement des jeux de données. Nous avons également « sondé » les dix-huit étudiants du cours à intervalles réguliers, pour établir les types de données qui les intéressent, et pour identifier les principales difficultés auxquelles ils ont fait face. J’ai bon espoir que cette expérience se soit révélée positive pour eux aussi : quelques étudiants sont même allés jusqu’à nous soumettre des analyses inédites, sur des sujets plus ou moins loufoques.

La page d’index du cours se termine sur quelques remerciements, qui sont autant de sources à consulter sur l’analyse de données avec R. Dans le cadre de ce billet j’y rajoute Christophe Genolini et Julien Barnier, qui ont inspiré une bonne partie de la démarche pédagogique, et j’invite Baptiste Coulmont et Timothée Poisot, s’ils passent dans le coin, à jeter un coup d’oeil (ils sont déjà dans les remerciements pour leurs scripts en R et R Markdown).

Pourquoi aimer les boxplots

Baptiste Coulmont rappelle qu’on n’utilise pas assez les boxplots, et cite au passage Howard Becker, qui vante leurs qualités d’identification des « observations extrêmes », les outliers. Récemment sur France Culture, on pouvait écouter Bernard Lahire faire la même apologie du travail sur les exceptions, comme par exemple les renversements de genre (il citait les camionneuses et les chirurgiennes).

La qualité première d’un boxplot est effectivement de faire ressortir des « boîtes » les observations qui se trouvent trop éloignées des autres, et qui brisent la symmétrie de la distribution. C’est pour ça que j’utilise souvents les boxplots sur des séries temporelles, pour faire ressortir l’hétérogénéité des séries. Voici un graphique d’un texte communiqué, pas publié mais réplicable :

papier AFSP 2011, annexe figure 11 : résultat d'un modèle additif généralisé

Le ‘Bistro aime aussi les boxplots. Vous en trouverez sur les résultats du concours commun des IEP d’il y a quelques années, par exemple, ou encore sur des biais de notation d’exposés. Mais encore faut-il comprendre les règles de construction du boxplot en premier lieu. Ces règles varient sur la méthode de calcul des outliers, comme le signale cet article co-signé par Hadley Wickham, le créateur de ggplot2.

Le boxplot réduit les éléments d’une fonction de répartition empirique (ECDF, déjà citée) à quelques repères essentiels : premier et dernier quartile, cinquantième pourcentile (médiane) et observations « éloignées », pour lesquelles les définitions varient. Voici un rapide exemple tiré d’un cours, avec du code Stata1 :

* Données : National Health Interview Survey (USA), 2009.
use data/nhis2009, clear
* Calculer l'Indice de Masse Corporelle (IMC/BMI) des enquêtés.
* Échantillon : population américaine adulte.
gen bmi = 703 * weight / height^2
* Calculer les pourcentiles (càd. 100 quantiles).
* Chaque pourcentile contient approx. 1% de la distribution.
xtile bmi_qt = bmi, nq(100)
* Calculer l'IMC moyen de chaque pourcentile.
bys bmi_qt: egen bmi_qm = mean(bmi)

En projetant ces données dans un graphique, on obtient une courbe qui montre d’emblée qu’il y a plus d’Américains à IMC élevé que l’inverse, et que l’état de santé des 10% les plus obèses est probablement un réel facteur de préoccupation, vu que’un IMC supérieur à 40 fait courir un risque d’obésité morbide :

* La variable contre ses quantiles (ECDF).
sc bmi_qm bmi_qt, ms(o) c(l) xla(1 10 25 50 75 90 99)

IMC USA 2009 par quantiles

En calculant les 25e et 75e pourcentiles (quartiles « Q1 » et « Q3 »), on peut voir quelle fraction de la courbe va correspondre aux limites inférieure et supérieure de la « boîte » du boxplot :


* Stocker les statistiques détaillées.
qui su bmi, d
* Extraire Q1 et Q3.
local q1 = r(p25)
local q3 = r(p75)
* Graphique avec lignes horizontales à Q1 et Q3.
* On aurait aussi grapher la médiane (Q2 / p50).
sc bmi_qm bmi_qt, ms(o) c(l) xla(1 10 25 50 75 90 99) ///
  yline(`q1' `q3') name(p1, replace)

Ces éléments sont les éléments de construction fixes. Les « moustaches » et les « outliers » dépendent de calculs plus ésotériques, décrits dans ce script pour Stata. (Au passage, j’utilise mon propre thème graphique pour atténuer la mocheté des graphiques Stata).

L’utilité du boxplot n’est pas vraiment, à mon sens, dans la réduction d’une répartition empirique. On voit plus vite où se trouve les « fat tails » dans une ECDF que dans un boxplot, où le nombre d’outliers est en plus fonction de la taille de l’échantillon, ce qui est facilement trompeur. Voici le boxplot horizontal tiré de la distribution ci-dessus :

* Boxplot.
gr hbox bmi

Boxplot IMC

On a facilement l’impression qu’il y a tout plein d’Américains gravement obèses, mais c’est un effet lié à la taille de l’échantillon. Les outliers sont visuellement nombreux mais représentent en réalité moins de 2% de la distribution (n = 464 à IMC > 40 sur N = 24 291). La courbe de l’ECDF est naturellement plus correcte à interpréter ici.

Le boxplot aide plutôt à la comparaison sur des « petits multiples« , c’est-à-dire sur un petit nombre de catégories avec lesquelles on divise une distribution (ici éducation et ethnicité, sans les « outliers » car les « boîtes » parlent d’elles-mêmes) :

* Les boîtes suffisent pour observer l'effet.
gr box bmi, over(educrec1) asyvars over(raceb) noout

IMC * Ethnicité * Éducation

C’est maintenant l’heure d’aller rattraper les cours que j’ai lamentablement ratés ou pas encore rédigés pour demain…

  1. … car je suis une feignasse, mais je posterai du code R plus chouette plus tard. []

Synthétiser l’évolution socio-démographique des 36 000 communes françaises depuis 1968

Dans le cadre de ma thèse portant sur le vote pour le Front national en région PACA, je me suis posé la question de savoir si la trajectoire socio-démographique d’une commune influe sur le niveau du vote FN dans cette commune. En d’autres termes, la manière dont les effectifs des différentes catégories socio-professionnelles évolue au cours du temps a-t-elle un impact politique ? Spontanément, je tendrais à faire l’hypothèse que oui. On peut imaginer plusieurs mécanismes reliant les deux phénomènes : par exemple, que l’évolution locale objective de la structure sociale influe sur la perception subjective de l’évolution de la société par les habitants d’une commune. Ou encore, que le déclin numérique de la classe sociale à laquelle on appartient induit un sentiment de déclin généralisé. Il y aurait bien évidemment encore bien d’autres hypothèses possibles.

En réalité, j’avais déjà examiné cette question dans une communication que j’avais faite au congrès de l’AFSP, en 2009. J’utilisais la variable de l’évolution socio-démographique de la commune comme variable indépendante dans des modèles multi-niveaux ayant pour variable dépendante le vote en faveur du Front national. Mais, déjà lorsque j’avais rédigé ce texte, je n’étais pas très content de la manière dont j’avais procédé.

En effet, habitué à manier des variables quantitatives continues (l’habitude de travailler sur des données agrégées…), je cherchais à avoir ce type de variable. En partant de la composition de la population active par catégorie sociale (nomenclature CS en six positions) à tous les recensements de 1968 à 1999, j’avais estimé un modèle multiniveau de croissance pour chaque CS. Ce modèle est un modèle linéaire – c’est là mon premier souci : rien ne permet de penser a priori que les évolutions socio-démographiques, sur une durée de trente ans, sont linéaires. Un groupe social peut croître puis décroître, la croissance d’un autre peut être exponentielle plutôt qu’arithmétique. J’avais bien envisagé de faire une modélisation quadratique, mais je me sentais beaucoup moins à l’aise pour utiliser ces coefficients comme variables par la suite, car leur interprétation est moins directe.
Les coefficients issus de cette modélisation linéaire multiniveau (12 coefficients par commune tout de même) étaient ensuite passés à la moulinette d’une ACP, afin d’en dégager les dimensions les plus significatives (toujours le même problème d’ordonner et synthétiser des données trop abondantes pour être interprétées). La position de chaque commune sur les trois premières composantes issues de l’ACP étaient ensuite utilisée comme variable explicative dans le « gros » modèle multiniveau. Cette analyse donnait des résultats substantiels, mais demeurait pourtant problématique. Outre le problème de la modélisation linéaire déjà évoqué, les données sont fragiles : elles sont issues de l’exploitation complémentaire du recensement, c’est-à-dire d’un sondage au quart. Ce qui signifie que, dans les petites communes au moins, les données sont très bruitées. La procédure que j’ai utilisée ne supprime pas ce bruit. Ce n’est pas dramatique en soi, car s’il y a du bruit, il n’y a pas de biais, mais ça diminue la puissance explicative (ou prédictive, comme on voudra) de cette variable indépendante. De plus, c’est une procédure très analytique, qui étudie les effets distincts de plusieurs composantes de l’évolution socio-démographique des communes, mais sans permettre facilement de revenir à des cas typiques, des sortes d’idéal-types permettant d’appréhender quelques profils d’évolution. Plus je vais et plus je tends à préférer les procédures permettant de comparer les effets de quelques cas plutôt que donnant des coefficients abstraits – l’influence d’Andrew Gelman et Gary King, sûrement.

En revenant sur cette question durant la rédaction de ma thèse, je me suis dit qu’il serait sans doute plus simple, et plus intéressant substantiellement, de dégager quelques types de trajectoire socio-démographique des communes. Je n’avais pas d’outil précis en tête, alors j’ai un peu farfouillé, notamment du côté des analyses de séquence en histoire. Mais, pour ce que j’en ai compris – corrigez-moi si je me trompe, amis historiens ! -, ce type d’analyse ne s’applique qu’à des variables qualitatives, discrètes. Ca ne faisait donc pas mon affaire. J’ai aussi été voir du côté de la modélisation de classes latentes, mais je ne suis pas très à l’aise avec les équations structurelles, donc tant que je ne les comprendrai pas mieux, je ne les utiliserai pas.

Et puis je me suis dit qu’il suffisait de faire simple. J’ai donc décidé de calculer, sur chaque période intercensitaire, un taux de croissance pour chaque CS (sur la base des effectifs absolus). Ensuite, il suffit de faire tourner une procédure classificatoire sur ces variables. Facile, a priori. Sauf que mon premier réflexe a été de recourir à une classification ascendante hiérarchique (CAH), notamment en raison de sa proximité méthodologique avec l’analyse géométrique des données (le directeur de mon labo, Frédéric Lebaron, en est un des spécialistes, donc je suis tombé dedans quand j’étais petit). Sauf que… c’est une méthode relativement lourde d’un point de vue computationnel (O(n3), je crois), et ni mon ordinateur personnel, ni une instance Amazon avec 16 Go de RAM ne s’en sortis. J’ai donc changé mon fusil d’épaule, et j’ai essayé une K-means (vous connaissez une bonne traduction française pour cela ?). Mais, outre la difficulté classique (et facile à résoudre empiriquement) de savoir combien de classes il faut chercher, cette procédure ne convient pas en l’espèce car les effectifs des classes produites sont très dissemblables – l’algorithme est très sensible aux outliers, et comme les données sont fortement bruitées… En cherchant, j’ai découvert l’existence d’un autre algorithme, les K-médoïdes. L’idée est globalement la même que celle consistant à substituer la médiane à la moyenne comme mesure de centralité : c’est un algorithme plus robuste, moins sensible aux outliers. Exactement ce qu’il me fallait… Seul inconvénient : c’est plus gourmand en temps de calcul que les K-means (presque deux heures sur une instance AWS avec 16 Go de RAM, sur un tableau de 36000 lignes et 60 colonnes). Et puis, comme les K-means, ce n’est pas un algorithme déterministe, donc idéalement il faudrait l’estimer plusieurs fois, mais vu le temps de calcul requis, on s’en passera.

Une fois que j’ai dégagé mes classes, il n’y a plus qu’à les analyser. Pour cela, le plus simple est de les visualiser. On peut faire de l’ACP (là aussi, il va falloir tricher un peu, car l’ACP est aussi intense computationnellement ; un moyen est de faire une K-means dégageant, mettons, 1000 groupes, et d’ensuite faire l’ACP sur les centres de ces groupes – on perd de fait très peu d’information), mais en l’occurrence je n’ai pas trouvé cela très parlant. Je préférais voir, vraiment, les différentes trajectoires. Après avoir tâtonné un peu (oui, ça a beaucoup tâtonné, cette histoire…), j’ai décidé de tracer une courbe par CS par groupe. Avec R et ggplot2, ce n’est pas trop compliqué de faire ça à peu près proprement. Et voilà le résultat (cliquez sur l’image pour la télécharger en pdf) :

Maintenant, reste à interpréter… mais c’est une autre histoire !

Les données de l’INSEE utilisées pour l’analyse sont , et mes données et mon code complets pour dupliquer l’analyse sont sur mon github (poke François !).

Si vous avez en tête d’autres manières de mener ce genre d’analyse, dites-le moi en commentaire !

EDIT : j’ai oublié de préciser deux choses, nécessaires à la compréhension du graphique :

  • Le jeu de données de l’INSEE que j’ai utilisé ne concerne que les actifs de 25 à 54 ans (en raison de changements méthodologiques au fil du temps), et distingue entre chômeurs et actifs occupés. La tranche d’âge concernée explique le faible niveau de chômage.
  • J’ai ajouté aux graphiques, outre la moyenne, les 1er et 3e quartiles, afin de visualiser la dispersion interne à chacun des groupes. Comme la moyenne a été pondérée par la population active des communes, elle peut parfois ne pas être comprise entre les 1er et 3e quartiles – ou pourquoi la moyenne n’est pas toujours un bon indicateur de centralité…