Ressources numériques en sciences humaines et sociales OpenEdition Nos plateformes OpenEdition Books OpenEdition Journals Hypothèses Calenda Bibliothèques OpenEdition Freemium Suivez-nous

Aperçu des technologies de data mining sur le blog Quanti / sciences sociales

Deux amis viennent de publier un excellent texte sur un blog voisin : “Vers une ‘data-sociologie’ ? Tour d’horizon des techniques de collecte automatisée de données sur le web”. Fortement conseillé pour se mettre à jour sur les outils francophones disponibles en ligne pour s’initier au data mining.

Je suis notamment curieux de connaître les possibilités de scraping pour les articles de presse de Factiva grâce à “Tirésias”, un logiciel de l’équipe Prospérologie. À titre d’exemple de data-sociologie, un doctorant de l’OSC a aussi commencé à rédiger un package Factiva pour R : là aussi, j’attends de voir ce qu’il est possible de faire avec, quand j’aurai enfin compris comment exporter en XML depuis ce service.

Comme l’invite à penser l’exemple de Factiva ci-dessus, les avancées de la data-sociologie dépendent largement des formats dans lesquels il est possible de télécharger des données. Le développement de l’open data et le travail de certaines associations comme Regards Citoyens ont fait un peu avancer la réflexion à ce sujet. Des institutions comme la Banque mondiale, Eurostat ou l’OCDE font aussi des efforts d’harmonisation autour de formats communs, comme le format SDMX.

“3%”

Mon billet précédent sur l’élection présidentielle américaine évoque rapidement les “47%” cités par Mitt Romney, une gaffe supposée qui n’a pas grand chose à voir avec une authentique gaffe électorale.

Un autre chiffre m’a fait sourire la semaine dernière : Le Parisien a interviewé un haut fonctionnaire français qui évoque les premières heures de la “règle des 3% du PIB”, inventée par la Direction du Budget pour les besoins du gouvernement socialiste de 1981 et à la demande de François Mitterrand, qui souhaitait contraindre les dépenses de ses ministres. Quelques années plus tard, Laurent Fabius se servira de cette fraction pour ne pas avoir à parler du déficit public en termes nominaux.

Le détail des règles de construction du seuil est assez amusant. Le choix du produit intérieur brut, par exemple, induit en théorie une déférence à un indicateur macroéconomique très surveillé au niveau international, ce qui en ferait un truc assez difficile à trafiquer sans que cela se remarque à la Banque Mondiale et au FMI. En réalité, les chiffres du PIB sont raisonnablement spéculatifs en fonction des ambitions gouvernementales et du degré de contrainte exercé sur les agences et directions chargées de sa publication.

De la même manière, la volonté toute mitterrandienne de faire choisir, par Bercy plutôt que par l’Insee, un seuil de “3%” entièrement arbitraire, fournit un assez joli exemple de raison d’État. Ces indicateurs et seuils se retrouvent aujourd’hui dans les traités européens, mais aussi dans notre manière de lire la crise financière actuelle. Cette grille de lecture a déjà produit ses premiers résultats : le tournant néolibéral des années 1980 a connu une ponctuation idéologique d’environ 18 mois en 2009-2010, mais la résurgence keynésianiste de cette période n’a pas duré, au moins en ce qui concerne la zone euro, et les gouvernements se retrouvent tous à sabrer (trop tôt) dans les dépenses publiques, en scrutant naïvement leurs fractions de PIB.

Deux institutions, la science économique et la Banque centrale européenne, méritent probablement (encore) plus d’attention à ce stade : la première pour sa remarquable flexibilité, la deuxième pour la propriété inverse (pour son “austéritarisme”, pourrait-on dire au vu du peu de cas qu’il a récemment été fait du processus électoral dans plusieurs pays européens). Je ne doute pas qu’on trouvera tous les arguments nécessaires pour continuer à faire vivre ces institutions.

Pronostics électoraux sur l’élection américaine

C’est l’heure de passer au PMU et d’aller parier sur Obama :

Le tableau ci-dessus est extrait de l’introduction au symposium qui vient d’être publié par PS, et où l’on trouve une bonne partie des modélisations électorales de la présidentielle américaine. Certains modèles se donnent la peine d’essayer d’expliquer le score, et de choisir des variables en conséquence : le modèle de Hibbs, par exemple, attribue une sanction électorale directe aux interventions militaires (via le nombre de morts sur le champ de bataille). D’autres modèles ne se donnent pas vraiment cette peine et utilisent les variables en fin d’entonnoir électoral (les variables partisanes), à des niveaux variables de granularité empirique. Voir aussi Votamatic et 538 pour des modèles très riches avec des méthodes de calcul intéressantes.

Ma compétence prédictive est très logiquement médiocre, vu que je ne prends pas le temps de me pencher sur les données au niveau des états fédérés (ou des départements et des communes en France). Au niveau stratosphérique où je me trouve, la seule variable qu’on aperçoit clairement est le taux de chômage, et il n’y a pas de précédent historique pour établir un parallèle suffisamment renseigné. Les modèles qui tiennent compte de telles variables économiques, généralement à partir des variations du revenu disponible, ont le mérite de montrer qu’Obama peut se planter à cause de l’économie (ce que je persiste à penser depuis plusieurs mois), mais la plupart des modèles mieux informés que ça prédisent sa réélection, à plusieurs grands états près. En bref, la politique l’emporte sur l’économie en l’état actuel des connaissances.

En attendant, outre ce génialissime sondage et cette publicité bien tournée sur la gaffe statistique de Romney, il y a aussi Samuel Lee Jackson qui se lance dans la propagande électorale :

Je peine à imaginer un équivalent français.

Première note d’une petite série sur “Obamacare” (avant un texte plus long)

Un récent article très renseigné d’Anne-Laure Beaussier permet de rentrer dans le détail de la réforme du système de santé américain sous Barack Obama. Il faut s’accrocher pour passer certains aspects du processus, comme celui qui explique très rapidement l’application et les conséquences des Byrd Rules pour accélérer la procédure législative. L’article fourmille de détails, comme cette chouette technique de lobbying : s’adresser aux soutiens d’une réforme en leur annonçant qu’elle va échouer, en espérant qu’ils se retirent par anticipation. Ça ne marche clairement pas à tous les coups, mais c’est quand même plus honnête que d’annoncer un parricide de masse par euthanasie fédérale (l’immense avantage du Parti républicain étant de pouvoir s’autoriser toutes les stratégies à la fois, même celles qui vont un peu plus loin que les faits).

Les conclusions principales du texte portent sur la modification des règles du jeu législatif : ce jeu est suffisamment dynamique pour permettre aux partis de gouverner sous des règles en partie inédites, ce dont les Démocrates ont su se servir pour sécuriser les ressources nécessaires au vote de la réforme, après obtention du soutien des industries concernées. L’opposition parlementaire n’a pas pu y faire grand chose, d’autant plus qu’elle s’est largement faite dépasser par sa droite au passage, en réaction précisément au fonctionnement même du jeu législatif, comme le suggère très justement Anne-Laure Beaussier.

Quelques dimensions supplémentaires de la réforme appellent à trois courtes remarques. De par son cadrage, l’article élude en grande partie la dimension raciale du système politique américain, alors que le degré de polarisation raciale des soutiens et opposants joue un rôle dans le phénomène de radicalisation de la compétition partisane décrit en fin d’article (sur ce sujet, voir les analyses récentes de Michael Tesler). Il faut ensuite se demander si la radicalisation du Parti républicain, qui pré-date la réforme du système de santé, va avoir des conséquences sérieuses sur l’élection présidentielle de cette année (en bref : c’est possible, vu que Romney ne semble pas prédisposé à se déplacer vers le centre). Il faut enfin se demander si cette réforme change la donne au niveau institutionnel, qui est déterminant pour universaliser un système de soins. Il n’est pas garanti que la réforme existe encore l’année prochaine, même si le risque diminuera avec le temps ; tout ceci est donc à prendre avec des pincettes historiques.

Je vais essayer de revenir point par point sur cette réforme, pour en faire quelque chose de plus long à terme. Le quelque-chose-de-plus-long apparaîtra éventuellement ailleurs, si ça plaît à la rédaction.

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 là, 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é…