Visualisation interactive des cosignatures à l’Assemblée nationale

Suite et fin d’un feuilleton sur les données parlementaires et la visualisation des réseaux de cosignatures, sous-titré : « Tant qu’il y aura des données. » Le code et les données sont accessibles dans ce répertoire, et j’espère bientôt présenter ces slides.

L’an dernier, je suspectais l’arrivée d’un nouveau moteur de recherche pour les amendements de l’Assemblée nationale. Ça y est, il est en ligne, et la mauvaise nouvelle est que la nouvelle interface ne se laisse pas faire et demanderait une réécriture complète de mon code d’extraction des cosignatures.

Ce premier échantillon m’a incité à coder l’extraction des cosignatures sous la forme de fonctions génériques, auxquelles j’ai ensuite passé les mêmes listes de cosignatures issues des amendements (depuis 2002) et des propositions de loi (depuis 1986) de l’Assemblée nationale et du Sénat.

Baptiste Coulmont avait défriché le terrain il y a déjà plusieurs années, et la structure de ces données constituait un bon terrain d’entraînement pour apprendre à manipuler des réseaux pondérés et bipartites, de même que le format des données fut un bon terrain d’entraînement pour coder des fonctions d’extraction un peu complexes, utilisant des données collectées en ligne ou sorties de bases SQL.

Voici quelques résultats sous la forme d’une visualisation interactive qui passe des données et des paramètres produits avec R à la librairie de visualisation Javascript produite par deux membres du Médialab de Sciences Po, sigma.js (cliquez sur les images pour la version complète) :

fig_sigma

La visualisation se limite aux propositions de loi de l’Assemblée nationale, qui sont disponibles sur la période la plus longue, couvrant toutes les périodes de cohabitation de la Cinquième République. Elles donnent à voir les cosignatures d’environ 2 000 députés travaillant à ces cosignatures de manière très différenciée selon qu’ils appartiennent à un groupe parlementaire ou à un autre, à droite ou à gauche, dans l’opposition ou dans la majorité1. Les voici géocodés :

sponsor_maps

L’interface de la visualisation permet de mettre l’accent sur les réseaux égocentrés des députés, ce qui ne sert pas à grand chose d’un point de vue analytique2, mais qui permet de mieux identifier les membres des bureaux chargés de centraliser les cosignatures:

Screen Shot 2014-02-20 at 4.04.34 PM

L’interface affiche quelques informations sur les députés tirées de leurs fiches dans la base Sycomore, ainsi que leurs distances moyennes, soit la « rapidité » avec laquelle on peut relier un député à tous les autres en suivant leurs co-signatures :

fig_sigma_detail

En ce qui concerne la construction des graphes, quelques copains assistants parlementaires (merci !) m’ont incité à structurer tous les réseaux collectés de la même manière que James Fowler, en ne retenant que les liens entre les premiers auteurs et leurs cosignataires3. J’ai découpé les données du Sénat sur les mêmes périodes temporelles que l’Assemblée nationale, par législature.

J’ai aussi calculé toute une série de mesures similaires (centralité, modularité, etc.) en tenant compte de la nature pondérée des liens entre co-signataires. Ces mesures sont expliquées en détail dans le papier qui accompagne le code du projet, et qui devrait finir par contenir des modélisations plus avancées des données4.

Avant d’effectuer les mesures, j’ai standardisé les groupes parlementaires en grandes familles sur la période observée pour pouvoir comparer d’une législature à l’autre. Voici par exemple une mesure de centralité sur la législature en cours, qui met en valeur les quelques députés intermédiaires entre les groupes minoritaires et majoritaires, à la fois dans la majorité et dans l’opposition.

fig-weighted14

Enfin, voici la contribution du groupe parlementaire à la polarisation maximale du réseau, qui mesure l’intensité du travail parlementaire intra-groupe par rapport à l’activité inter-groupe — une manière de mesurer l’importance de la segmentation partisane, déjà visuellement remarquable. Suivant cette mesure, le Parlement français est beaucoup plus discipliné que le Congrès américain, même si le Sénat apparaît systématiquement moins contraint par la discipline de parti et semble même l’être de moins en moins.

fig-max_m

Pour produire le même style de visualisation sans trop mettre les mains dans le cambouis Javascript, voici une autre visualisation qui utilise une interface clés-en-main, tous les deux écrits par une équipe de l’Oxford Internet Institute, pour un résultat approchant de mon propre bricolage5 :

fig_oii

  1. Ces variables explicatives apparaissent régulièrement dans les études législatives, notamment celles utilisant les scrutins publics (roll calls). []
  2. Le récent « Que sais-je ? » d’Emmanuel Lazega sur les structures relationnelles l’explique à plusieurs reprises dans les deux premiers chapitres. []
  3. Les bureaux des groupes opèrent fréquemment par cosignature collective sous principe d’opt-in par défaut, ce qui a pour conséquence d’inclure les groupes parlementaires complets ou quasi-complets dans sur les cosignataires. Les biais induits par cette pratique sont minimisés si l’on ne retient que les liens asymmétriques et que l’on pondère les liens par le nombre de cosignataires, ce qui est la stratégie suivie par Fowler, qui peut aussi être normalisée. []
  4. Appel aux dons : si vous avez une heure à perdre au café et que vous savez lire les diagnostics d’un ERGM estimé à partir d’une distribution de Poisson, écrivez-moi maintenant, tout de suite. []
  5. Et pour cause, c’est toujours Sigma.js qui est utilisée en arrière-plan pour dessiner le réseau, avec quelques différences avantageuses comme l’emploi d’un moteur de rendu graphique compatible avec une gamme de navigateurs légèrement plus large. []