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

339 députés sur Twitter

Les données sur la classe politique semblant toujours trouver preneur, voici un encart publicitaire pour un jeu de données contenant les comptes Twitter de 339 députés de la législature en cours :

example1

J’ai récolté les données pour illustrer une fonction qui sert à visualiser des données de type “réseau” avec ggplot2 (note : plus de détails sur le code ici). Voici quelques compléments sur les données :

  • Le “gris central” est Jacques Bompard, mais il est central au réseau malgré lui : il est là à cause des députés qu’il suit ou qui le suivent, et qui l’attirent au centre. Voir ci-dessous pour les détails.
  • L’anomalie “rose chez les bleus” est Kheira Bouziane, dont le compte Twitter est à présent fermé et le site Internet en reconstruction. Je n’ai aucune explication. Il ne faut pas surlire les données.
  • La “rose très excentrée” est Pascale Boistard. Il y a aussi ce député UMP qui m’a fait rigoler : plein de gens le suivent, mais lui ne suit absolument personne. Il n’apparaît pas dans le graphique.

Si vous souhaitez explorer le réseau, voici une rapide fonction “qui est suivi par qui” :

who.is.followed.by <- function(df, x) {
  f = df[which(df$Source == x), ]$Target
  print(as.character(f))
  print(table(ids$Groupe[which(ids$Twitter %in% f)]))
}

Amusez-vous bien :

who.is.followed.by(df, "JacquesBompard")
who.is.followed.by(df, "Marion_M_Le_Pen")

Exercice : rédiger la fonction inverse who.follows() (qui, comme celle ci-dessus, peut s’écrire en une ligne).

Notes de construction : les données sont un mashup entre les données du site Tweet Député (qui est bourré d’erreurs et de fautes d’orthographe), celles réunies par le Lab Europe 1 lors de la campagne électorale de juin 2012 (avec beaucoup de comptes de campagne plus ou moins temporaires et les députés devenus ministres), celles du compte Twitter de l’Assemblée nationale, et le fichier sur les députés en mandat du site Nos Députés, établi par Regards Citoyens avant les partielles de décembre 2012. Le scraping des comptes a eu lieu au cours des quatre dernières semaines.

Envoyez vos corrections, et allez voir d’autres travaux similaires chez Arthur Charpentier, qui avait relayé une visualisation des données de juin 2012 avec Gephi par Ewen Gallic, chez Jonathan Chibois, qui travaille sur ces données en conservant une perspective longitudinale, ou chez Baptiste Coulmont, qui m’a inspiré ce graphique.

Rajout #1 : j’avais oublié de citer la visualisation d’Ewen Gallic, c’est fait. Par ailleurs, j’ai tenté de rendre les données de mon graphique disponibles en deux fichiers “nodes/edges” pour Gephi : le résultat est là (pour autant de temps que possible), et inclut aussi un fichier GEXF exporté avec le package rgexf. Je n’ai pas réussi à utiliser ces fichiers correctement avec Gephi 0.82, que je connais très mal. Have fun!

Rajout #2 : si vous vous demandez comment analyser ce genre de réseau, jetez un coup d’oeil à ce qui a été fait sur les meilleurs tennismen mondiaux.

Rapide retour sur Reinhart et Rogoff

Ce billet reprend une petite collection de liens sur l’affaire “Reinhart et Rogoff”, deux économistes qui ne savent pas très bien compter, si l’on reprend le titre de l’émission qu’y a consacré France Culture peu de temps après la “révélation” des erreurs de leurs papiers. Voici un aperçu des données à partir desquelles les deux économistes avaient conclu, en 2010, qu’un niveau élevé de dette publique nuisait à la croissance du produit intérieur brut (plutôt que l’inverse…) :

R&R - Violin plots

Si cet aperçu ne vous suffit pas, voici à quoi ressemble les données de Reinhart et Rogoff si l’on se donne la peine de les modéliser a minima. Il devient alors évident que l’effet de la dette publique sur la croissance du PIB est un artefact pur et simple, lié au fait que cette croissance est plus faible dès le départ :

R&R - regression lines

L’émission est très intéressante, et j’ai beaucoup aimé les excellentes interventions d’Arthur Jatteau. Un autre intervenant y évoque rapidement les erreurs d’un autre modèle récemment critiqué, celui du multiplicateur fiscal dans le rapport FMI-WEO 2012. J’en avais fait un exercice de cours, et suis en train de tourner Reinhart et Rogoff en un exercice (dont les graphiques ci-dessus sont tirés), sur le modèle de ceux que d’autres ont déjà produit. Le produit presque fini est en ligne sur GitHub. En revanche, cette chouette représentation graphique interactive publiée il y a quelques semaines ne semble plus fonctionner.

Pour ceux qui n’auraient pas suivi, commencez ici, puis continuez au même endroit, et enfin tournez-vous vers vos sources habituelles : Gelman, Krugman, Simply Statistics, Crooked Timber… Arthur Charpentier a publié beaucoup plus de liens si vous voulez reconstituer tout l’historique de la controverse.

La presse, jusque dans ses parodies, a naturellement adoré cette histoire : un doctorant (!) qui démolit (avec deux de ses enseignants !) deux professeurs cités par les élites de la décision macroéconomique… Sans compter que ce n’est pas le premier cas. La réponse de “R & R” à la critique ne fut pas très convaincante, et leur théorie semble définitivement enterrée.

Maintenant que les choses se sont un peu tassées, s’il fallait retenir une seule des erreurs de Reinhart et Rogoff (car il y en a beaucoup : utiliser Excel et se planter dans une colonne, faire des moyennes pondérées pas vraiment pondérées, échouer devant un problème élémentaire de causalité inversée, etc.), je retiendrais celle qui porte sur la fraction traitée des données complètes : les deux économistes ont exclu certains points sans aucune justification. Les outliers méritaient naturellement mieux. L’infini ballet des tragédies fractionnelles ne s’observe pas que chez les professeurs d’Harvard : cette erreur est observable un peu partout.

La tribune plutôt bien ficelée que Le Monde vient par ailleurs de publier, un peu en retard, sur le sujet, rappelle le plus important : la réplication joue actuellement un rôle mineur dans l’organisation du travail scientifique, alors qu’elle devrait y être élevée au rang de routine scientifique.

R Lyon 2013

Histoire de ne pas rester un mois complet sans rien poster, voici une petite mise à jour liée au dernier billet : Joël et moi serons aux 2e Rencontres R à Lyon les 27 et 28 juin, et comme la vie est bien faite, nous intervenons presque en même temps dans deux amphis différents (résumés ici et ). Parmi les conférenciers invités de R 2013 Lyon, Hadley Wickham, qui parlera de bigvis.

Le programme contient une mégatonne de présentations courtes voire très courtes, sur le format “lightning talks”. L’enseignement et la pédagogie y sont bien représentés, ce qui est certainement bon signe pour R et son intégration aux cursus universitaires, y compris en sciences sociales. À ce sujet, ne faites pas comme moi, ne ratez pas “R pour les enquêtes de conjoncture de l’INSEE“, aujourd’hui même.

La suite (et fin) est ici.

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…