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…

GDELT : la science politique devient une « big data science »

Ça vous dit, un jeu de données avec 200 millions d’événements géopolitiques de 1979 à aujourd’hui ? Mis à jour quotidiennement ? Suivez cet acronyme : GDELT, pour “Global Data on Events, Location and Tone”.

Mise à jour : il est vivement conseillé de lire cet autre billet avant de passer du temps sur les données GDELT.

Ça vient de sortir, c’est gratuit en ligne (attention, les données « réduites » prennent une demi-heure à télécharger), et ça fait l’événement, à juste titre : pour tous ceux qui travaillent sur les invasions militaires, les conflits armés ou les coups d’État, c’est une entrée dans la « big data science » (et apparemment, on peut également compter dessus pour d’autres types d’événements). Le codage repose en grande partie sur la grille d’actions qui suit :

CAMEO codes

Cela paraît l’occasion rêvée pour se lancer dans le machine learning, avec Coursera ou avec Drew Conway et John Myles White… À noter, enfin, que si les très grands jeux de données règlent les problèmes de puissance statistique bien connus dans les études cliniques, ils ne règlent rien d’autre, notamment au niveau théorique.

En aparté : nous discutions aujourd’hui avec Joël et une autre personne qui voulait se renseigner sur la « culture de la donnée » en sciences sociales. Je vous laisse faire le bilan ici : le premier jeu de données n’a ni licence, ni version. Sa présentation tient en un papier pas toujours très bien ficelé, et les premières analyses font circuler des fragments de données sans plus de précaution.

P.S. Un peu de code en Python pour analyser les événements Israël/Palestine.

Les petites choses lisibles de ce mardi

  • La Cour suprême américaine se penche sur le mariage homogame, avec un rapport très particulier aux résultats scientifiques sur l’évolution des enfants issus de couples de même sexe :

    Scalia’s statement [is] an example of the fallacy of the one-sided bet, an argument that is artificially restricted to go in just one direction. Scalia’s saying that raising a child in a single-sex family might be “harmful to the child” or maybe not. But by framing it this way, he’s implicitly excluding a third possibility, which is that being raised in this way may be helpful to the child.

    Un problème proche du tiers-exclu dans un dilemme.

  • Première victime de l’amendement « Coburn » aux États-Unis, un programme de sensibilisation à la science politique pour les minorités ethniques et raciales :

    One of the first major casualties of the Coburn amendment, perhaps even the first known casualty of any size, is the cancellation of APSA’s Ralph Bunche Summer Institute (hereafter RBSI), “an annual five-week program designed to introduce minority students to the world of graduate study and to encourage application to Ph.D. programs.”

  • La question de l’ouverture de la science politique aux minorités ethniques ne se pose pas en France, où l’on ne peut pas utiliser les même termes sans commettre une faute, scientifique ou morale. Je me demande, à vrai dire, si la réflexion autour des “classes d’ouverture” a la moindre chance de refaire surface.

  • Goodbye Maggie! Margaret Thatcher est décédée. The Null Device a rédigé mon obituary favori, qui rappelle sa formidable contribution au punk. Also, this:

    She is survived by Nelson Mandela, whom she denounced as a terrorist, her son, motor racing enthusiast and Equatorial Guinea coup plotter Sir Mark Thatcher, and, of course, her economic policies, which now form the backbone of all major political parties in the UK, and UKIP as well. Now there is, indeed, no alternative.

    Je me souviens d’un de mes étudiants qui avait été routier sous Thatcher, et qui en parlait avec de la colère (sinon plus) dans la voix. C’était en Écosse, une terre qui n’a jamais accepté Thatcher dans les mots et les idées (les journalistes parlent d’ailleurs surtout de l’Angleterre). Voir aussi ce bref compte-rendu historique.

  • Une réaction à la sociologie que j’ai déjà rencontrée lorsqu’un public a l’impression que l’on parle de lui en termes déterministes et/ou misérabilistes :

    I’m sick of reading about how fucked up we are, even if we’re discussing the reasons why things are like this.

    À rapprocher de l’enseignement de Bourdieu en banlieue. Je ne sais pas où en est la réflexion sur ces points en France, mais je sais que les outils un peu plus fins sur l’ascension sociale, comme le récent outil sur les lycées français, sont systématiquement travestis en “classements et palmarès” par les médias (avec des résultats divergents, comme le remarquait le Canard enchaîné de la semaine dernière).

  • Cosma Shalizi a lu John Levi Martin, Social Structures :

    The most robust possibility for creating large-scale, comprehensible social structures is an anti-symmetric patron-client relationship, grounded in some [inequality] pre-existing inequality of status or resources (or ideally both), where clients offer services to patrons and patrons protect clients from other members of the patron class.

    Le compte-rendu contient aussi d’excellentes pistes de lecture. JLM me donne l’impression d’être très sophistiqué, mais aussi complètement détaché de toute ambition “épigonienne”.

P.S. Le titre de ce billet fait référence à une série de billets que je publiais sur un précédent blog, mais je n’ai malheureusement plus le temps de suivre un échéancier de publication. C’est dommage, car j’ai échangé et rencontré plein de gens très chouettes de cette manière, avec qui je suis toujours en contact plusieurs années après avoir arrêté.

Pour une poignée d’euros offshore en plus

Joël a publié (avec un autre ami) une tribune percutante sur l’affaire Cahuzac et ce que les médias lui font dire en termes de conséquences électorales. J’aime bien aussi le billard à trois bandes qu’imagine Christophe Bouillaud pour François Hollande.

Sur un sujet connexe, Denis Robert a écrit un paragraphe intéressant sur son profil Facebook, en rapport au projet ICIJ qui prolonge le « scandale Cahuzac » par le « scandale des comptes offshore ».

Mises à jour

Pour votre plus grand plaisir, les mises à jour d’un blog qui a presque la même périodicité qu’une revue universitaire :

  • Les archives 2007-2009 du précédent blog ont été incorporées au ‘Bistro. Les liens sont souvent morts, les catégories déséquilibrées, sans parler des mots-clés ; mais tout est là, FWIW.
  • La maquette du ‘Bistro est désormais un peu plus large, en espérant que cela aide à la lecture ; l’image de bandeau n’a pas changé mais s’est un peu allongée, on verra si on trouve mieux dans les jours à venir.

En faisant du nettoyage dans les cartons de la cave, j’ai réalisé que nous maintenions, à nos débuts, une liste de blogs universitaires francophones, qui pour la plupart ont sombré dans l’oubli, délaissés par leurs auteurs (à qui je ne jette naturellement pas la pierre, vu mes propres difficultés à rester « publiant » dans la blogosphère au fil des années).

Ce triste état de fait va de pair avec la mort planifiée de la syndication RSS (pardon, de Google Reader), du faible soutien à l’open access au sein de “la base”, mais aussi de l’expansion de Twitter et de plein d’autres choses qui mériteraient un vrai développement. Toujours est-il que Versac n’aura jamais vraiment eu le blog de science politique francophone qu’il appelait de ses voeux.

Voilà pour les dernières actualités, à lire au son d’un fado un peu nostalgique. Le blog compte à peu près 250 billets (et une trentaine de brouillons jamais publiés). Et pour terminer, une relique : le contenu de la page de “promo” qu’utilisait le blog précédent !

À la manière des ouvrages de Tom Clancy, Philippe Roth ou Michael Crichton, voici la quatrième de couverture racoleuse de ce blog :

« An excellent French language politics blog »
Intute Social Sciences

“A good source for the latest research in French political science”
Arthur Goldhammer

“Longue vie à cette initiative”
Pierre Maura

“… it has really begun to bring together some interesting work which certainly would have evaded the attention of anglophones”
Henry Farrell

Je retourne ranger les derniers cartons.