French Election Study : où trouver l’Enquête Électorale Française

En rédigeant le billet précédent sur les jeux de données en sciences sociales, j’ai réalisé que j’avais toujours du mal à localiser les fichiers de l’Enquête Électorale Française (EEF), aussi appelée French Election Study (FES).

L’enquête est l’équivalent français des American National Election Studies (ANES), de la British Election Study (BES), et de la German Longitudinal Electoral Study (GLES1). En revanche, à ma connaissance, contrairement à toutes ces enquêtes, elle n’est pas documentée sous la forme d’un site ou d’une page Web qui permette de facilement comprendre ce que contiennent les fichiers, et (c’est le sujet de ce billet) où les télécharger2.

Localiser l’enquête demande actuellement de naviguer entre plusieurs sites Web, catalogues de données, moteurs de recherche et institutions, organismes ou équipes de recherche responsables de la diffusion des données. Les quelques paragraphes ci-dessous expliquent comment s’y prendre, en espérant que cela puisse être rendu plus simple à l’avenir.

Mise au point : comme l’indique Tristan Guerra en commentaire3, on dispose non pas d’une mais de deux « enquêtes électorales françaises » pour 2017 : l’Enquête Nationale Électorale Française (ENEF), et l’EEF/FES. La première n’étant, à ma connaissance, disponible nulle part4, le reste de ce billet se concentre sur l’EEF/FES.

CDSP → Réseau Quételet (CASD)…

Pour commencer à chercher les données de la FES, on va commencer du côté du CDSP, le Centre de Données Socio-Politiques, basé à Sciences Po5.

Le CDSP ne produit pas l’enquête, qui résulte du travail d’une équipe de recherche pluri-établissements, majoritairement basée au CEE de Sciences Po, au CED (Bordeaux), et à PACTE (Grenoble). En revanche, le CDSP en supervise la diffusion.

« Supervise » car, avant-dernier arrêt avant le terminus, la diffusion des données est entre les mains du Réseau Quételet, qui délègue la demande d’accès aux données… au CASD, le Centre d’Accès Sécurisé aux Données.

Vous êtes arrivé(e) : tout le monde descend.

Réseau Quételet → ORDS → BDQ…

Le site Web principal du Réseau Quételet, qui est hébergé par PROGEDO6, propose un « Outil de Recherche de Données en Sciences Sociales » (ORDS).

Problème : la requête « Enquête Électorale Française »7 ne trouvera que l’EEF 2012, et une partie de l’Enquête post-électorale française (EPEF), années 19588, 1978, 1988, 1995 et 1997, mais pas 1962, 2002 ou 2012. Quant à la requête « French Election », elle ne trouvera que l’EEF 2012.

Pour obtenir plus de résultats, la première option est de se rabattre sur la Base de questions (BDQ) du Réseau Quételet, qui pré-existait à l’ORDS, et qui présente également l’avantage de produire une URL stable et lisible par enquête.

On y trouvera l’EEF 2007, et la série complète de l’EPEF, années 19589, 1962, 1978, 1988, 1995, 1997 et 2012. Il manque 1981, pour laquelle on n’a apparemment rien, et 2002, pour laquelle on dispose d’un panel en trois vagues (1, 2, 3).

Attention, la FES 2007 et l’EPEF 2012 n’ont pas été étiquetées « Enquêtes électorales », et ne sont par conséquent pas listées dans la collection du même nom. En revanche, vous trouverez toutes les enquêtes sur la page « producteur » du CEVIPOF.

Mais en fait, à ce stade, vous feriez mieux de revenir sur vos pas.

… → Nesstar

Lorsque vous avez repéré l’EEF 2012 sur l’ORDS, celui-ci vous a renvoyé sur le serveur Nesstar de Sciences PoNesstar est une infrastructure de diffusion de données, l’équivalent payant de quelque chose comme CKAN.

La « vitrine » de l’infrastructure, WebView, n’est pas nécessairement très commode, et les permaliens sont super-moches (et pas évidents à trouver), mais au moins, tout y est (sauf l’ENEF 2017 ; voir mise au point en début de billet) :

Et ailleurs ?

Les données EEF/FES sont celles utilisées pour la France dans la CSES depuis 200210.

S’il vous faut d’autres données d’enquêtes socio-politiques sur la France11, allez voir du côté de l’ESS (données françaises depuis 2002) de l’ISSP (depuis 1996), de l’EVS (depuis 1981), et de l’Eurobaromètre (depuis je-ne-sais-pas-quand).

Mise à jour : dans une réponse à un tweet, PROGEDO me rappelle l’existence de l’ADISP (Archives de Données Issues de la Statistique Publique), dont le site Web rappelle les conditions d’accès, très strictes, aux enquêtes publiques, dont l’EEF fait partie.

  1. L’enquête allemande est intégralement panélisée, ce qui présente d’immenses avantages en termes d’analyse ; les autres enquêtes le sont partiellement, sur des périodes ou des échantillons réduits. []
  2. Je marche sur des oeufs ici : l’enquête est entre les mains de personnes que je connais de près ou de loin, et mon intention, avec ce billet, n’est (surtout) pas de diminuer la valeur du travail effectué sur cette enquête, mais de pointer ce qui me semble être un défaut d’accessibilité au niveau de la localisation des données. []
  3. Et Matthieu Gallard m’a fait remarquer la même chose sur Twitter. []
  4. Le CEVIPOF diffuse des notes de recherche sur l’ENEF, mais le site Web « enef.fr » ne dit rien de l’accès aux données brutes de l’enquête. Sa page « Études et enquêtes » n’en parle pas non plus, ni le reste de son site Web, bien qu’il y eut, un temps, une page qui annonçait l’enquête. []
  5. À ne pas confondre avec l’ancien CIDSP de Grenoble. []
  6. Attention, ces deux sites Web ne sont pas accessibles en HTTPS : n’y rentrez pas d’identifiants. Quand on essaie d’accéder au site du Réseau Quételet en HTTPS, on est basculé ailleurs, sur HUMA-NUM. []
  7. J’ai vérifié, les majuscules et accents n’ont pas d’effet sur les requêtes. []
  8. Sauf qu’en fait, c’est un panel pré/post : voir plus bas dans le texte, note de bas-de-page suivante. []
  9. Sous le nom « Panel électoral français 1958 », car c’est un panel. []
  10. La description de la CSES liste trois contributions françaises sur les quatre modules pré-2017 ; en revanche, selon les descriptions de l’EEF/FES, la FES 2017 serait la cinquième contribution française. Mystère. []
  11. Sur le territoire complet ; en régional, il y a aussi l’enquête MEDW 2012 (législatives, Île-de-France et Provence), qui existe aussi pour 2014 (municipales et européennes). Les trois enquêtes sont panélisées pré/post. []

Jeux de données pour les sciences sociales

J’ai récemment transféré la page wiki d’un cours vers mon site Web, et en ai profité pour commencer à en remettre à jour les liens.

Ça s’appelle « Quantitative Social Science Data ».

Tout est dans le titre de la page, et même si je sais qu’il existe des dizaines de listes similaires1, j’aime bien avoir la mienne quelque part en ligne, afin de pouvoir y renvoyer les étudiants (ou les collègues).

Faites-moi signe si j’ai oublié quoi que ce soit de super-important2.

Quant à la liste des jeux de données que j’utilise dans le cours mentionné plus haut, elle est beaucoup plus courte.

Compléments à venir

Je n’ai pas encore inclus grand chose sur les partis et les élus, alors qu’il y a des tonnes d’enquêtes et de jeux de données sur le sujet : je suis preneur de toute liste de suggestions pour commencer une section là-dessus.

Il faut aussi que j’inclus quelques jeux de données géocodées/spatiales pour encourager la cartographie, mais comme c’est un domaine que je ne couvre pas du tout dans le cours qui a enfanté cette page, je n’ai encore rien listé.

Enfin, il faudrait que je prenne le temps de consulter… mes propres bookmarksdata:social-science, data:economics, et puis aussi data:availability, soc:quantification, et encore… mais j’ai un peu la flemme.

Bonus : une mailing-list « data »

Vous voulez vous tenir au courant des derniers jeux de données publiés, sur à peu près n’importe quel thème ?

Data is Plural, de Jeremy Singer-Vine, est la newsletter qu’il vous faut.

Allez voir les archives de la newsletter : c’est extrêmement riche et très bien fichu, avec de brèves descriptions des données qui permettent de très vite comprendre qui les a produit, ce qu’on y trouve, et à quoi elles servent.

  1. J’aime bien celle-ci, par exemple. Côté (open) data repositories, Enigma Public s’en sort très bien. []
  2. Comme tous les abonnés de la plateforme GESIS, j’ai reçu une enquête… sur les enquêtes (surveys) que j’utilise. Allez la remplir, il y a une liste intéressante d’enquêtes dans les questions. []

Collecter, visualiser, analyser des données législatives avec R

Il y a quelques semaines, j’ai eu la chance de pouvoir enseigner deux jours à Bordeaux, sur le sujet qui donne son nom à ce billet. La formation était organisée par l’URFIST Bordeaux, qui a tout organisé de part en part : merci à Sabrina, tout, absolument tout (du logement à la logistique à la coordination pédagogique) était plus que nickel !

Évidemment, le matériau de réplication est sur GitHub :

Il y a deux ou trois sujets que j’aurais bien aimé couvrir (l’utilisation d’un headless browser comme CasperJS, par exemple), mais les étudiants1 avaient besoin d’outils plus ancrés dans la pratique du code dans R même. Cela attendra une autre formation.

Vous retrouverez, dans le matériau utilisé au fil de la formation, les slides de la séance « Web scraping et APIs » que j’avais donnée au séminaire RUSS (« R à l’usage des sciences sociales ») il y a quelques années — un autre excellent endroit pour partager des connaissances méthodologiques et techniques.

  1. Presque tous des doctorants, issus de disciplines allant du droit aux mathématiques en passant par les la démographie et les neurosciences (!). []

Annals of Youtube Science 2(4): Philosophie et technique des essais cliniques

On reprend la série, en bifurquant légèrement (mais légèrement seulement) par rapport aux enquêtes, le thème le plus traité dans les quelques billets de cette année.

Découvert grâce à une amie, les cours et conférences de Bruno Falissard (chaîne Youtube), qui couvrent de très nombreux sujets ayant trait à l’utilisation des statistiques en (bio)médecine. Sa série sur les essais cliniques, et donc l’évaluation des thérapies, est très intéressante1 et facile à suivre :

Bruno Falissard, qui est aussi l’auteur d’un manuel d’utilisation de R pour traiter des données biomédicales récoltées par questionnaires, est très pédagogue, et même souvent amusant lorsqu’il pointe les différents points aveugles des méthodes que l’on utilise pour fabriquer des résultats cliniques estampillés « gold standard« .

  1. À quelques approximations près dans le texte : Claude Bernard en mécaniste, par exemple, c’est peut-être un peu trop rapide. On pourra aussi contester certaines techniques évoquées par l’auteur, comme les corrections de Bonferroni, mais ce n’est pas de la faute de Bruno Falissard, qui reconnaît leur côté très « frustre » (mais qui est étonnamment plus dur, je trouve, avec les méta-analyses par réseaux. []

Statistics and the Political Sociology of Quantification, version 2018

Ce blog évoque assez régulièrement, et parfois conjointement, la quantification comme activité sociale d’une part, et les statistiques (ou l’analyse de données) d’autre part—sujets que j’ai pu combiner, ce semestre, sous la forme d’un enseignement de Master :

La formule du cours (moitié atelier pratique, moitié exposés) est encore un peu trop baroque à mon goût, et la bibliographie est excessivement francophone, en particulier au vu du public du Master visé, très internationalisé ; mais c’est la première version que je mets en ligne1.

Le versant qualitatif du cours est un simple remâché de l’agenda scientifique identifié il y a déjà bien longtemps par le regretté Alain Desrosières2 ; la version actualisée de cet agenda est, de mon point de vue, celui d’Espeland et Stevens, qui est le seul texte, avec un chapitre sur le jargon des statistiques, que je demande pour ce cours.

Le plan donne mes sources, dont un blog dont j’ai déjà parlé, celui du projet ACQUA (ex-AGLOS). J’ai encore des dizaines de dossiers de références diverses et variées à verser dans le plan de cours, ou directement dans le projet, qui possède un volet bibliographique. Tout ceci devra néanmoins attendre que les copies arrêtent de pleuvoir…

  1. J’ai déjà expérimenté avec une formule similaire l’an dernier. []
  2. Et par d’autres, bien sûr : Donald Mackenzie, Theodore Porter, James C. Scott, Libby Schweber, Harry Woolf… []

Code et données pour les sciences sociales (2) Automatisation

Une série de billets visant à commenter (pas à traduire) le guide de Gentkow et Shapiro (2014). Précédemment : Ép. 1 (Introduction), Ép. 1.5 (Informatique).

L’informatique utilise un principe simple : ne pas se répéter. Tout ce qui peut faire l’objet d’une automatisation doit l’être, afin d’éviter de perdre du temps à ré-implémenter quelque chose qui l’a déjà été par le passé, ou qui aurait pu être conçu de manière programmatique, c’est-à-dire automatisé.

Si l’on cherche à sophistiquer un peu ce mot d’ordre, on en arrive rapidement à des distinctions comme celle entre programmation impérative et programmation fonctionnelle, mais dans le contexte de la recherche scientifique, on a surtout besoin de formuler quelques principes plus généraux :

  • Comme pour une recette de cuisine ou une partition de musique, tout ce qui peut être automatisé, c’est-à-dire reproduit à partir d’un protocole d’enquête codifié et reproductible à l’identique, mérite de l’être, ne serait-ce qu’à des fins pédagogiques ou parce que la recherche requiert de fournir ces protocoles à des fins de publication ;
  • Tout ce qui peut être « scripté« , c’est-à-dire décrit comme l’exécution d’une suite d’étapes (les actes et les scènes au cinéma ou au théâtre), mérite aussi de l’être, afin d’en permettre la reproduction la plus simple et la plus rapide, et éventuellement, son amélioration future, dans un objectif de cumulativité.

Gentzkow et Shapiro donnent des exemples avec Stata : ils décrivent l’utilisation de scripts (do-files dans le jargon Stata) mis à la chaîne les uns des autres, dont l’exécution finale est déléguée à un script Windows. L’ensemble est aussi transparent que possible et devrait rester réplicable à l’identique quelques années au moins : mission accomplie.

Quand je code en R (exemple), je n’automatise quasiment jamais jusqu’à utiliser un Makefile, mais j’inclus toujours beaucoup de documentation sous la forme d’un ou plusieurs README, et laisse aussi souvent un fichier « make.r » qui remplit la fonction d’un « Makefile R » qui serait limité à l’exécution du code1

L’autre technique d’automatisation, probablement la plus moderne et la plus appropriée, consisterait à développer le principe des notebooks (documents dynamiques : voir Jupyter, knitr et R Markdown) jusqu’à ce qu’ils puissent générer des documents collant encore plus au format des textes scientifiques2.

C’est exactement ce qui est en train de se développer avec Radix for R Markdown, qui me semble extrêmement prometteur. Il faut aussi garder un oeil sur l’automatisation d’autres tâches que l’écriture, comme le peer review : la « chaîne de travail » du Journal of Open Source Software, entièrement conçue sur GitHub, est extrêmement innovante en la matière.

  1. Un Makefile, de même qu’un script R plus complet, aurait aussi la possibilité d’actualiser les résultats inclus dans les articles ou les slides liées au code. En attendant, cela fait longtemps que je me dis qu’il faudrait que j’écrive des Makefiles, et ne le fais jamais. []
  2. Stata vient aussi de se mettre aux documents dynamiques avec Markdown, mais traînera toujours derrière des langages plus flexibles et entretenus par des communautés d’utilisateurs plus larges et dynamiques. À ma connaissance, SAS et SPSS sont dans les choux… Fin de partie ? []

Open Data for Urban Research, version 2018

J’ai récemment donné ma séance de ce cours, organisé avec Joël et Samuel Goëta, les deux co-fondateurs de Datactivist, à Sciences Po Paris :

J’en avais déjà parlé, et peu de choses ont changé dans le plan de cours. En revanche, j’ai fait intervenir deux artistes, qui ont – excellemment – bien expliqué leur projet (en cours) de cartographie sensible de mon quartier parisien1, et j’ai complètement réécrit mes slides :

La séance s’est focalisée sur la visualisation spatiale, qui sert, évidemment, à faire des cartes, un sujet que je trouve très bien documenté en français((Voir par exemple le site Visionscarto et le blog Carnet (neo)cartographique.)), mais pas que : typiquement, beaucoup de réseaux, en tout cas dans les domaines qui m’intéressent, peuvent avoir une version « spatialisée », c’est-à-dire où les coordonnées sont fixes et signifiantes.

Les slides contiennent quelques détails sur le projet de cartographie sensible mentionné plus haut, mais je ne veux pas trop en dire pour ne pas perturber leur travail.

Dans les slides, vous trouverez aussi notamment une mention de Magrit, l’excellent outil de cartographie en ligne produit par l’UMS RIATE, et quelques-unes des non moins excellentes slides d’Arthur Charpentier et al. sur « La ville en économie ».

Enfin, à la toute fin des slides, vous trouverez deux renvois vers deux petits exercices pratiques avec R, que je n’ai pas eu le temps de faire tourner en classe…

… mais qui suivent de près des billets plus complets, d’Arthur Charpentier (le même) pour la fameuse carte du choléra à Londres par John Snow en 1854, et de François Keck pour le package rleafmap, repéré sur le blog d’Arthur (encore lui).

  1. La Goutte d’Or, sur laquelle vient tout juste de sortir un très beau livre de photographies d’Elena Perlino (disclosure : j’ai participé à le financer). []

Sauvegarder un documentaire en deux manipulations simples

Ce billet répond à une question soulevée par quelques étudiants dans un cours de méthodes de travail numérique, mais je me dis que certains lecteurs de ce blog peuvent aussi avoir l’utilité des trucs et astuces ci-dessous. Et puis l’enchaînement avec le billet précédent me plaît.

Supposons que vous ayez visionné l’excellent documentaire « Libye, anatomie d’un crime », et que vous puissiez en avoir besoin à l’avenir, pour citation dans un exposé, dans un cours, ou dans toute autre présentation qui relèverait de l’exception pédagogique1, et pour laquelle vous souhaiteriez, par exemple, utiliser des captures d’écran du documentaire.

Si vous souhaitez conserver une copie du documentaire, c’est techniquement toujours possible : votre navigateur Web doit pouvoir lire cette copie pour vous montrer une version « streaming » (flux) du documentaire. La seule différence entre une copie temporaire (streaming) et une copie permanente est l’emplacement mémoire où vous allez stocker cette copie, et sa persistance.

Pour sauvegarder cette copie, il va vous falloir quelques outils :

  • Un navigateur Web qui vous permette de repérer facilement le fichier de streaming ;
  • Un terminal qui puisse exécuter quelques commandes simples ;
  • Et de quoi lire le résultat final tout en prenant des captures d’écran.

La dernière étape est la plus simple, et bien que tout le monde semble utiliser VLC (création française, cocorico) pour lire de la vidéo, je préfère de très loin mpv, qui beaucoup plus souple (configurable) et que je trouve plus élégant.

1. Identifier le fichier de streaming

Pour la première étape, je conseille Google Chrome avec l’extension Video DownloadHelper afin de localiser le fichier de streaming au format .m3u8, c’est-à-dire la version Unicode / UTF-8 du standard M3U, que l’on utilise souvent en multimédia.

Lancez la vidéo dans votre navigateur afin d’activer la lecture du stream : l’extension va automatiquement détecter le flux, que vous pourriez aussi (mais plus laborieusement) localiser en inspectant, à l’aide de ses Developer Tools, les ressources chargées par le navigateur.

En cliquant sur l’extension (en haut à droite, en bleu), vous aurez plusieurs choix de streams, en fonction de la qualité du flux que vous souhaitez sauvegarder. Passez à la prochaine étape en cliquant sur la flèche entourée en rouge, en choisissant une bonne résolution vidéo :

Contentez-vous, ensuite, de copier l’adresse du fichier .m3u8, afin d’éviter que l’extension ne vous demande d’utiliser sa propre solution de sauvegarde du flux (ce qui se produira si vous demandez à télécharger le fichier plutôt qu’à simplement en copier l’adresse) :

À ce stade, votre presse-papiers contient une adresse de type

https://arteptweb-vh.akamaihd.net/ [...] 6JNR.smil/index_3_av.m3u8

… où le serveur appartient à un CDN assez connu, Akamai, et où l’on retrouve bien l’extension m3u8 en fin d’adresse ; notez aussi le protocole/langage SMIL, également courant en multimedia.

Si vous téléchargez et inspectez le contenu du fichier .m3u8, vous y trouverez les adresses de tous les fichiers .ts (MPEG-TS) que le stream mobilise pour faire défiler la vidéo ; ce sont ces fichiers que l’on va télécharger, puis fusionner en un seul fichier final :

(Note : personnellement, à ce stade, je désactive l’extension Video DownloadHelper dans mon navigateur, afin d’éviter qu’elle ne consomme de la mémoire – et n’analyse le contenu des pages Web que je consulte… – lorsque je ne m’en sers pas.)

2. Passer le stream à ffmpeg

Il va à présent vous falloir télécharger la librairie ffmpeg, qui permet de faire tout et n’importe quoi avec des fichiers vidéo.

L’installation et l’utilisation de ffmpeg demandent de savoir utiliser un terminal ; pour installer la librairie sur macOS, vous aurez préalablement installé Homebrew, et utiliserez cette commande2 :

brew install ffmpeg

La librairie ffmpeg permet notamment de « concaténer » (de chaîner, de joindre, de fusionner) des fichiers vidéo. On pourrait télécharger soi-même les fichiers vidéo listés dans le fichier .m3u8, puis les « chaîner » à la main3 ou avec ffmpeg. Mais il y a encore plus simple :

ffmpeg -y -loglevel verbose -i "https://arteptweb-vh.akamaihd.net/ [...] 6JNR.smil/index_3_av.m3u8" -c copy -f mpegts final.mp4

… où l’adresse (tronquée) entre guillemets est un simple copier-coller de celle que vous avez copiée à l’étape précédente, et où le résultat final (le documentaire en entier) s’appelle final.mp4, car on souhaite convertir le résultat au format MPEG-4, lisible avec n’importe quel logiciel de lecture vidéo qui pourrait se trouver sur l’ordinateur de votre salle de cours.

La commande va télécharger l’intégralité des fichiers vidéo listés dans le fichier .m3u8, avant de les convertir au format souhaité. Vous risquez de voir s’afficher des avertissements sans importance au passage — ne vous inquiétez pas, car à moins que vous n’ayez plus d’espace disque ou autre scénario relativement improbable, tout va bien se passer :

Votre documentaire est prêt à l’emploi. Bon visionnage !

  1. J’insiste : il s’agit d’une exception accordée par le droit français, ce qui signifie que tout autre usage doit être accompagné d’une démarche visant à comprendre si des coûts de (re)diffusion peuvent s’appliquer. []
  2. Sur Windows, vous ferez ce que vous pourrez avec les moyens du bord, que je connais mal, et sur Linux, vous installerez vous-même la librairie, en fonction de votre distribution. []
  3. Il suffirait d’utiliser quelques expressions régulières sur le fichier .m3u8 pour en extraire les adresses des fichiers vidéo, de tous les télécharger, puis de les concaténer. []

Code et données pour les sciences sociales (1.5) Informatique

Une série de billets visant à commenter (pas à traduire) le guide de Gentkow et Shapiro (2014). Précédemment : Ép. 1 (Introduction).

Vous l’aurez compris à la lecture de l’introduction, cette série de billets va parler de recherche empirique, reproductible, et donc très largement informatisée, au sens : conçue, et pour partie exécutée – en matière de production des résultats – face à un écran d’ordinateur.

Du coup, dans cet épisode intermédiaire, je souhaite rajouter quelques mots sur l’équipement informatique du chercheur lambda. Dans leur introduction, Gentzkow et Shapiro ne mentionnent qu’un seul logiciel :

Saying [empirical researchers] should spend more time thinking about the way they write code would be like telling a novelist that she should spend more time thinking about how best to use Microsoft Word.

Ne nous en tenons pas à ça.

La ligne de commande

Lorsque l’on cherche à rendre un protocole de recherche reproductible de part en part, ou lorsque l’on commence à avoir besoin (ou l’envie ; et ce sera notre prochain épisode) d’automatiser ce protocole de recherche, il faut commencer à bidouiller avec la ligne de commande :

Essayez, ce n’est pas si compliqué : sur macOS, ouvrez l’application « Terminal »1, qui vous ouvrira automatiquement une session dans un shell semblable à ceux que l’on ouvre sur n’importe quelle machine Unix2, et tapez simplement :

uptime

Voilà, vous y êtes.

Il s’agit du même shell qu’utilisé dans le billet où j’explique comment sauvegarder un flux vidéo en deux manipulations basiques. Par défaut, il s’agit d’un shell de type Bash, mais vous vous en fichez : tout ce qui compte est de savoir que vous en passerez par là pour accomplir une partie de vos manipulations.

Les éditeurs de texte simple

Lorsque vous aurez besoin d’écrire vos scripts (vos suites de commandes), vous le ferez soit dans un éditeur3 dédié à un langage de programmation spécifique (Stata, RStudio, PyCharm…), soit dans un éditeur en texte « simple » ou « brut » (plain text editor). Ce dernier outil va vous être extrêmement utile, et il vous faut quelque chose de mieux que Notepad ou TextEdit.

Sur Windows, allez voir du côté de Notepad++ ; sur Mac, allez voir du côté de TextMate, mon éditeur favori parce qu’il est extrêmement rapide à l’ouverture. D’autres éditeurs, plus lourds, ont néanmoins l’avantage d’être plus puissants et multi-plateformes : essayez Atom ou Visual Studio Code.

Un éditeur en texte simple ressemble à ça :

Rien d’exceptionnel ici, si ce n’est que vous remarquez tout de suite que les lignes sont numérotées, et que la syntaxe du fichier (ici, Markdown) colorise certaines parties du texte (ici, le lien Web, reconnu par l’éditeur grâce à son préfixe « http[s]://« ).

Le même éditeur va vous permettre de composer dans n’importe quel langage de programmation — ci-dessous, un peu de Python qui me sert à télécharger les émissions de France Culture tout en les renommant pour que je puisse les archiver plus vite4 :

Vous voilà équipé. Faisons le point :

  • Votre ordinateur est une architecture matérielle sur laquelle est posé votre système d’exploitation ; et vous avez l’habitude d’utiliser cet ordinateur via des logiciels comme Microsoft Word. Nous n’y reviendrons pas, car…
  • Pour écrire du code, il va falloir programmer, c’est-à-dire écrire du code informatique, dans un ou plusieurs langages ; vous allez le faire via des éditeurs spécialisés, ou via un éditeur de texte (simple, plutôt que « riche », comme Microsoft Word).
  • En plus de cet éditeur, vous allez aussi passer, de temps à autre, par la ligne de commande (le « terminal », le shell), qui à l’inverse des autres logiciels cités aux deux points précédents, est toujours pré-installé, car il fait partie intégrante de votre système d’exploitation.

Je m’arrête là, et pour les conseils informatiques plus généraux, vous renvoie à ce billet, qui renvoie vers les conseils informatiques que je donne en cours.

  1. Dans le dossier « Utilitaires », mais j’espère que vous utilisez Spotlight ou un launcher comme Alfred pour ouvrir vos applications… []
  2. Sur Windows, vous aurez à explorer les différentes alternatives : PowerShell, le successeur de CMD.EXE, ou bien faire tourner Linux sous Windows grâce à Windows Subsystem for Linux (WSL). []
  3. Nous y reviendrons, exemples à l’appui. Ces éditeurs sont souvent appelés des « IDE ». Si vous écrivez du code, vous passez plus de temps dans ces éditeurs que sur Microsoft Word. []
  4. Le code ne devrait pas vous convenir, et c’est du mauvais Python (3.x) de débutant, mais si vous le voulez, il est en ligne. []

Code et données pour les sciences sociales (1) Introduction

Début d’une série de billets visant à commenter (pas à traduire) le guide de Gentkow et Shapiro (2014).

En 2014, Matthew Gentzkow et Jesse M. Shapiro, deux économistes, publient un petit guide que j’ai récemment découvert, grâce à plein de monde sur Twitter. Le guide s’intitule « Code and Data for the Social Sciences: A Practitioner’s Guide ».

L’introduction du guide décrit une manière de faire de la recherche, que l’on soit en science politique, en économie, en géographie, en sociologie ou en histoire, ou en biologie, en physique, en statistiques ou ailleurs :

… écrire du code pour faire tourner des analyses statistiques, pour simuler des modèles, pour formater des résultats, pour produire des graphiques.

En 2014, deux (jeunes) économistes peuvent assez facilement convaincre leurs pairs que cette manière de faire de la recherche est à la fois une forme légitime (car valide) et importante (car productive) de faire de la recherche1. Idem en biologie, par exemple, où la bio-statistique et la bio-informatique sont bien représentées dans les compositions des laboratoires.

C’est certainement moins évident en science politique, au moins en France, où le number-crunching ne semble pas avoir touché beaucoup de monde en dehors de la sociologie électorale2 pendant plusieurs décennies—ou est-ce un faux-semblant hérité d’une formation primordialement tournée vers l’explication dite « qualitative » et une lecture sélective de la littérature scientifique ? En tout cas, l’article de Nonna Mayer dans The Political Methodologist d’il y a dix ans ne va pas vraiment contre cette observation.

Les vogues récentes pour les « humanités numériques » (digital humanities) et la « science des données » (data science) aidant, on se trouve désormais dans une conjoncture où les nerds auto-proclamés ont une place dans les laboratoires, ne serait-ce que pour aider les collègues à utiliser l’imprimante, et éventuellement à collecter des données ou, dans les champs d’analyse les plus formalisés, à faire tourner quelques modélisations.

Voici quelques-uns des « scénarios utilisateur » que mentionnent Gentzkow et Shapiro en soutien à une recherche en sciences sociales tournée vers le code et les données :

  • Réplication — savoir (re)produire des résultats d’analyse, si possible, vu le rythme de la recherche, sur des durées assez longues ;
  • Données manquantes — savoir diagnostiquer des problèmes d’échantillonnage biaisant les résultats ;
  • Données supplémentaires — savoir rendre une analyse empiriquement plus robuste en élargissant son assise empirique ;
  • Intelligibilité et transparence — savoir rendre une analyse aussi transparente et compréhensible que possible au lecteur extérieur ;
  • Collaboration — savoir mettre en place des protocoles permettant de travailler collectivement sur un problème et ses données.
  • Changement d’échelle — savoir rendre accessible de très gros volumes de données, et/ou produire de très gros volumes d’analyse.

Une partie des problèmes ci-dessus relève à la fois des sciences sociales et de l’informatique : les « problèmes d’intelligibilité », par exemple, existent aussi bien au niveau (abstrait) de la conceptualisation qu’au niveau (concret) de la programmation (literate programming). D’autres croisent statistiques, probabilités appliquées et data engineering ; d’autres sont encore plus transversaux.

Concernant « l’ingéniérie des données« , la multiplication des problèmes à résoudre (big data, exploitation de données Web et/ou numériques, archivage et partage de données qualitatives…), sans que la croissance faible des postes d’ingénieurs de recherche ne permettait pas de suivre la demande, a aussi certainement aidé.

Gentzkow et Shapiro évoquent aussi le rôle de l’industrie et de la science informatiques, et des solutions qu’elle ont apportées sur ces questions :

If you are trying to solve a problem, and there are multi-billion dollar firms whose entire business model depends on solving the same problem, and there are whole courses at your university devoted to how to solve that problem, you might want to figure out what the experts do and see if you can’t learn something from it.

Le décor est ainsi planté : l’analyse quantitative et les utilisations scientifiques de l’informatique (scientific computing) sont devenues plus accessibles, aidées en cela par des changements à la fois internes et externes à la recherche scientifique — et les manières de travailler ont évolué en conséquence.

Voyons ce qu’en disent Gentzkow et Shapiro. On rentrera dans le vif du sujet au prochain épisode : pourquoi et comment automatiser la production d’un résultat d’analyse. Avant cela, il y aura un « épisode intermédiaire » sur l’informatique pour les sciences sociales.

  1. Ne serait-ce qu’en regardant un peu ce que font les « prix Nobel », on tombe vite sur deux d’entre eux, Thomas Sargent et Paul Romer, qui codent en Python ; et ils ne sont certainement pas les seuls. []
  2. Sous-domaine de la science politique où l’on retrouve pas mal de chercheurs formés en économie. []