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 (!). []

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 ? []

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. []

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 !

Stata était de passage à Paris

Je n’ai pas pu y assister, mais le premier French Stata Users Group Meeting s’est tenu hier à Sciences Po, à Paris.

Ce blog ne parle plus beaucoup de Stata, même si je continue, comme d’autres, à l’enseigner, et avec plaisir, car c’est un langage simple (au moins en surface ; sous le capot, en particulier lorsque l’on rentre dans Mata, c’est en réalité plus compliqué). L’installation est triviale, chaque ligne de code est une commande avec un résultat – généralement – visible à l’écran, et les étudiants arrivent à apprendre une cinquantaine de commandes assez rapidement, ce qui permet de couvrir beaucoup de sujets en un temps record. Cette facilité a un coût, et le langage est évidemment limité de plein de manières, la principale étant que Stata ne peut facilement manipuler qu’un seul objet.

Les présentations de Stata Paris 2017 montrent que le langage Stata est en pleine forme, avec de nombreux nouveaux packages publiés sur SSC, le serveur centralisé qui remplit la même fonction que CRAN et Bioconductor pour le langage R. À titre d’exemple, j’aperçois, dans les présentations, un package pour gérer le format SDMX –  équivalent R : package rsdmx ; voir aussi cette collection de connecteurs SDMX –, ainsi que de nouveaux estimateurs, qui renvoient à la base d’utilisateurs de Stata, composée principalement (à mon sens) d’économistes et d’économètres, puis d’épidémiologistes, de politistes et de sociologues, mais dans une moindre mesure.

Au passage : Stata 15 est pour bientôt sorti

Je remarque aussi, à l’occasion de ce billet, que StataCorp va bientôt sortir a sorti la version 15 de son langage/logiciel, dans laquelle on trouve vraiment plein de chouettes nouveautés, dont un nouveau préfixe bayes: qui fait exactement ce que vous pensez, et la possibilité de générer des documents HTML ou PDF avec Markdown + Stata.

Add. Merci à Alexis et Tristan pour la correction sur Stata 15, je laggue… !

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. []

Bonnes résolutions 2017, édition « science des données »

En toute probabilité, cette année, vous n’allez ni arrêter de fumer, ni commencer à manger et à dormir de manière équilibrée, ni vous astreindre à un planning hebdomadaire de passages à la piscine. Enfin, cette année, vous n’allez certainement pas réguler votre dose quotidienne de café1.

En revanche, cette année, vous pouvez prendre dix bonnes résolutions pas très compliquées, sur recommandation des nerds derrière le comptoir. Ces résolutions tournent autour de la « science des données », la fameuse data science, dont on ne sait pas encore exactement ce que c’est—mais ce n’est pas grave.

  1. Boycottez Elsevier

    Il faut continuer à signer la pétition The Cost of Knowledge, et encourager les réseaux de bibliothèques universitaires qui ont pris des initiatives de désabonnements massifs de certains « bouquets » de revues aux prix prohibitifs.

    Ce n’est pas compliqué, et c’est nécessaire si l’on veut mettre le minimum de pression nécessaire sur l’édition scientifique. Malheureusement pour la science politique, il y a d’excellentes revues chez Elsevier : Electoral Studies et Sociologie du travail2. Pour l’analyse de réseaux, c’est pire, la revue centrale est chez Elsevier.

    Mise à jour : un gentil commentateur m’apprend que Sociologie du travail s’apprête à quitter Elsevier pour rejoindre Revues.org. Double excellent choix ! L’éditorial de Didier Demazière sur le sujet est très intéressant à lire en entier.

  2. Désactivez Flash

    L’année 2016 n’a pas manqué de hacks (ou de révélations d’anciens hacks) spectaculaires, et si vous avez un compte LinkedIn ou Yahoo!, vous êtes concernés. Pour faire le point, voir l’excellent service Have I Been Pwned?

    Pour réduire les risques, cette année, vous pouvez notamment abandonner Flash, en le désactivant dans les préférences de votre navigateur Internet. C’est totalement indolore : l’industrie a abandonné ce format, et les sites Internet que vous consultez ont déjà fait leur transition vers autre chose.

  3. Apprenez R

    C’est le bon moment pour apprendre R. Comme tous les langages, il est périssable, mais en ce moment, il est à son apogée : les outils de base de la science des données (import/export, manipulation, visualisation) sont robustes, et les innovations quasi-quotidiennes3.

    L’offre de formation à R est aussi à son apogée : on trouve presque tout sur Internet, sur Stack Overflow notamment, et les formations hors-ligne s’organisent aussi—j’en dirai plus cette année, ici ou ailleurs. Surtout, c’est dans ce langage que se mènent, en ce moment, certaines des discussions les plus intéressantes sur comment analyser quelles données (Julia et Python comptent aussi, bien sûr).

    Si vous êtes data-journaliste ou aspirant à l’être, et/ou si vous vous levez le matin pour analyser des données, apprenez R, et le reste suivra.

  4. Utilisez Youtube

    En 2016, j’ai enfin réussi à faire comprendre à Youtube que je n’étais pas intéressé par les vidéos d’Alain Soral et Jean-Luc Mélenchon, ce qui m’a permis d’utiliser Youtube pour remplacer l’écoute de France Info à mes heures perdues.

    Pour cela, j’ai dû m’abonner à tout un tas de « canaux » Youtube, histoire de les faire peser dans l’algorithme de recommandation. Voici quelques exemples de canaux recommandables :

    Médias
    Arte, Arte+7, Arte – Tracks, Mediapart ; Mediapart, en particulier, publie de longs et excellents débats quasi-nocturnes : je recommande en particulier ceux de la série « Moyen-Orient Express« 
    Universitaire
    British Academy, Center for European Studies, Paris School of Economics, London School of Economics (and Political Science), Lee Kuan Yew School of Public Policy
    Autres
    Oxford Union Society, Alan Macfarlane, Bycome, Reactions, On The Top of Damavand for ever, DEFCONConference
  5. Apprenez HTML

    Bilan d’une conversation avec un ami : dans la vie, ce sont les langages qui vous amènent quelque part. Dans mon cas, ce fut l’anglais, le web design valide et accessible, et la programmation statistique, avec Stata puis avec R.

    J’ai appris HTML5 et CSS2/3 il y a quinze ans, à une autre époque, celle de Jeffrey Zeldman, Mark Pilgrim et Eric Meyer. À l’époque, il fallait y rajouter un peu de Javascript et PHP/MySQL ; aujourd’hui, il faut rajouter beaucoup de Javascript, librairies et frameworks inclus (Angular, Node, jQuery). Je conseille d’apprendre les bases avant tout.

  6. Défendez RSS

    La fermeture de Google Reader, qui fut, je pense, l’une des plus grosses erreurs jamais commises par Google/Alphabet, a condamné l’utilisation de masse des flux RSS ; mais les blogueurs, journalistes et autres geeks connaissent RSS, et veulent continuer à l’utiliser.

    Le standard est menacé de disparaître : il n’y a pas de flux RSS (ou Atom) sur Twitter (solution alternative), par exemple, et la nouvelle plateforme d’édition scientifique de Cambridge University Press, Cambridge Core, n’a plus de flux RSS pour ses revues4 Il faut protester quand l’occasion se présente.

  7. Envisagez Linux

    Voici la seule recommandation de cette liste que je n’ai pas encore prise.

    Il y a trois ans, si j’avais fait la liste des choses qui me manqueraient si je passais de Mac OS X à Linux, la liste était longue ; aujourd’hui, elle est de plus en plus courte. À l’inverse, la liste des choses agaçantes et/ou inutiles sur Mac OS X – maintenant macOS, mais vu que je n’ai pas l’utilité des nouvelles fonctionnalités du système, je suis encore sous Mac OS X 10.9 – s’est allongée.

    Il reste trop de choses génialement conçues sur Mac OS X pour que j’envisage un « switch » immédiat, mais j’hésite désormais autant à installer Xubuntu qu’à installer macOS. La dernière itération du MacBook, qui est un gros jouet plutôt qu’un ordinateur, me conforte dans cette tendance.

  8. Hebdomarisez Facebook

    Ce n’est évidemment pas l’usage que Facebook souhaite que ses utilisateurs aient du service, mais de mon point de vue, Facebook devrait une sorte d’hebdomadaire. En 2016, Facebook a d’ailleurs inauguré son équivalent des marronniers sur l’islam ou les Francs-Maçons, avec le phénomène des « fake news.

    Les outils pour transformer Facebook en « revue hebdomadaire » restent à inventer – consulter Facebook une fois par semaine ne suffira pas5 –, mais c’est l’une des choses que j’aimerais voir se développer cette année, après dix ans d’utilisation et quelques pauses de désintoxication.

  9. Documentez une API

    Cette résolution est peut-être la plus importante de ma liste. Elle est sous-rédigée, mais j’essaierai d’y revenir plus tard cette année.

    Il y a de plus en plus de sources de données, mais le nombre d’individus qui les documentent est à peu près stable. C’est un problème, car pour que la « science des données » décolle et produise un vrai saut qualitatif, il faudra de la main d’oeuvre, et elle doit être aussi diverse que possible6.

    À l’heure actuelle, les données disponibles sous la forme d’APIs sont documentées par les développeurs de ces APIs, ou par quelques-uns de leurs utilisateurs7. Cela ne suffira pas : comme sur Wikipedia, il faut différentes categories de contributeurs pour créer un écosystème. Ma conviction est que l’écosystème actuel des APIs est trop homogène, trop uniforme : il faut des journalistes, des chercheurs, des informaticiens, mais aussi des étudiants, des cartographes, des bureaucrates, bref un peu de tout, et ce mix est rarement présent aujourd’hui.

    Conclusion : si vous avez un intérêt dans la data science, qui sera probablement mon thème pour 2017 sur ce blog et ailleurs, participez à documenter une API.

  10. Bloguez sur Hypothèses

    On est bien sur Hypothèses, et le ‘Bistro a déjà un billet de prêt (ou en préparation) jusqu’à début mars, au rythme d’un billet tous les trois ou quatre jours. Le planning pourra évidemment changer si nécessaire, mais un rythme de deux billets par semaine me semble être un bon rythme de croisière.

    Venez sur Hypothèses, et meilleurs voeux à toute l’équipe !

  1. Ce ne sont que des exemples, hein. Ne dîtes rien à mes parents, s’il vous plaît. Par ailleurs, êtes-vous déjà allé en Norvège ? C’est fantastique, les gens boivent du café à toute heure du jour et de la nuit. Autre question : êtes-vous déjà rentré dans une boutique Nespresso ? C’est terrifiant, les employés se présentent comme des « collaborateurs ». []
  2. De mon point de vue, la meilleure revue francophone de sociologie des organisations. Moment nostalgie ce Noël, quand j’ai retrouvé L’acteur et le système et Le pouvoir et la règle dans mes étagères. []
  3. À suivre cette année, les progrès en manipulation de données spatiales. Les cartographes utilisant R sont très bien organisés, et les derniers exemples de réalisations dans le domaine sont très prometteurs. []
  4. J’ai déjà râlé à ce sujet auprès des développeurs, et espère que Cambridge Core introduira des flux RSS pour ses revues cette année, même si je n’en ai actuellement aucune garantie. []
  5. Idée : une extension pour navigateur Internet qui ouvrirait des combinaisons d’onglets différents selon le jour de la semaine. []
  6. Au niveau professionnel, mais aussi au niveau sociologique, évidemment. []
  7. Voici un exemple : quelques APIs suédoises, listées par un data-journaliste de SVT.se. []

Notes sur R et l’analyse de réseaux

Comme promis la semaine dernière, nouvelle annonce qui consacre mes deux obsessions pour la programmation statistique avec R et l’analyse de réseaux, toujours avec R :

r-notes

Le blog est syndiqué sur R-Bloggers, qui agrège plein de blogs sur R. Vous pouvez aussi vous y abonner par son flux Atom ou par son flux RSS.

Le moteur du blog est une version bidouillée de Dropplets.

Quelques notes déjà rédigées

J’ai commencé ce nouveau blog pour stocker des notes dont je suis le premier utilisateur, notamment sur les sujets suivants :

Je me suis aussi servi du blog pour documenter des résultats bizarres, faire des suggestions sur l’enseignement avec RStudio, et tenter des petites expériences avec jQuery, telles que celle-ci avec l’API Pinboard.

Il s’agit vraiment de notes plus que d’un blog : tout est rédigé dans un jargon pas très amusant, et il n’y a pas de commentaires, ni même de lien évident pour me contacter — d’où cette nouvelle publication en dehors du ‘bistro.

Dernière petite chose, vous pouvez désormais apercevoir les derniers billets du Polit’bistro et de R / Notes sur ma homepage universitaire, encore une fois grâce à jQuery, et plus précisément grâce au plugin FeedEk, qui permet de récupérer des contenus de fils RSS :

blogs-rss-feedek

Pour les fans, il y a aussi un peu de jQuery (avec beaucoup de JavaScript et un peu d’animations CSS3) sur la page où j’héberge ma frimousse.

Bonne(s) lecture(s) !

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).