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

GitHub mania

GitHub est une plateforme qui héberge du code sur la base d’un système de collaboration, git, qui a fait ses preuves en servant à coordonner le travail des 40 000 collaborateurs au noyau de Linux. Les Internets regorgent de ressources sur Git : voici une vidéo pour les plus avertis, et un guide de présentation plus accessible.

Les deux auteurs de ce blog sont assez fan de GitHub : vous nous y retrouverez assez facilement — et je pense que Joël a vraiment innové en publiant du code sur GitHub et en se faisant citer par le Canard enchaîné la même semaine ! GitHub a l’avantage d’être gratuit, ouvert et (très) robuste, de ne pas souffrir de limite sur la taille des documents, et enfin d’être obsessionnellement collaboratif. C’est une plateforme parfaite pour copier-coller des petits bouts de code, ou même pour héberger des données. J’ai testé ces fonctionnalités à partir de l’année dernière, en évoquant rapidement les résultats ici.

Cette année, j’ai testé les fonctions collaboratives de GitHub en donnant un coup de main sur un plugin Stata pour TextMate, et en commençant à soumettre des fonctions dans quelques packages pour R. C’était l’objet du point n°4 dans un billet de février, qui a débouché sur une fonction du package questionr de Julien Barnier, qui continue là où son très bon package rgrs s’était arrêté, et à qui j’espère pouvoir bientôt soumettre de nouvelles fonctions, inspirées de mes expériences (et de celles de mes étudiants) avec la manipulation de données d’enquêtes sous Stata.

Je viens aussi de publier une fonction dans GGally, un package qui a vocation à construire sur l’excellente librairie graphique ggplot2 ; là aussi, j’espère pouvoir écrire quelques fonctions de plus en m’inspirant du package arm d’Andrew Gelman et al., qui sert à analyser des régressions. Je vous raconte ça parce que je suis content comme un môme quand j’arrive à coder des trucs utiles aux autres, et parce que je souhaite encourager tous les lecteurs de ce blog à jeter un coup d’oeil à GitHub, qui a de très nombreux usages scientifiques, bien au-delà de la « pure » programmation.

Rêvons qu’un jour, il sera possible à la science politique de faire un coup de force en rendant publics ses jeux de données et ses scripts d’analyse sur une plateforme comme GitHub (ou même HAL-SHS), ce qui permettrait d’insister un peu plus lourdement sur l’opacité des méthodes de collecte et de redressement que l’on rencontre dans le secteur commercial. On peut d’ailleurs trouver sur GitHub des scripts ayant servi à des membres de l’équipe de campagne de Barack Obama l’année dernière…