De la matrice d’adjacence à la heatmap – mini tuto avec R
Dans les billets du groupe fmr, on parle beaucoup de flux et de réseaux, mais le “m” est pour “matrice”. Dans ce billet, nous commencerons par rappeler l’intérêt de visualiser des données relationnelles sous la forme de matrices, puis nous présenterons un des moyens disponibles pour le faire avec R appelé “heatmap” ou carte de chaleur.
Visualisation et représentation des données relationnelles
Dans le cas des très grands graphes caractérisés par une faible densité de relations mais un nombre important de sommets, il est admis qu’il peut être plus rapide et efficace d’obtenir un aperçu de l’ensemble des relations présentes en visualisant la matrice éparse, qu’en cherchant à représenter l’ensemble des sommets du graphe et leurs relations à l’aide d’un diagramme nœud-lien (voir R comme représentation et ENSAI Cours 6 – Représentation des réseaux).
Dans un article paru dans la revue Réseau, Nathalie Henry et Jean-Daniel Fekete (2008) synthétisent dans une table que nous reproduisons ici les avantages et inconvénients de visualiser les données relationnelles sous forme de matrice (voir aussi Forsyth et Katz, 1946) :
Pros | Cons |
Absence de superpositions des nœuds (ce qui permet de pouvoir toujours lire les étiquettes portées par les nœuds) | Taille de l’espace visuel requis à un niveau de détail équivalent plus important que le diagramme nœud-lien |
Absence de croisements des liens (ce qui permet de toujours identifier la source et destination des connexions) | Difficulté à effectuer des tâches de suivi de chemin (suivre les liens de Pierre à Paul passant par Marie) |
Facilité avec laquelle il est possible d’identifier les absences de connexions | Manque de familiarité, les matrices paraissent moins intuitives que les diagrammes nœud-lien |
Dans cette comparaison, il est question de l’efficacité d’un mode de visualisation sur un autre pour se faire un aperçu d’une quantité importante d’information. Compte tenu des avantages et inconvénients de chaque représentation, les spécialistes en visualisation d’information (Infoviz) préconisent un recours à différents modes, voire l’adoption de modes d’exploration hybrides tel que NodeTrix présenté dans l’article cité plus haut. Les avantages de l’interactivité sont aussi évoqués pour faciliter l’exploration.
Les représentations graphiques destinées à communiquer un résultat (dont nous traitons plus bas) s’éloignent un peu du cas de figure considéré ci-dessus car le message concerne généralement des observations obtenues sur un sous-ensemble de données ou sur une réduction de l’information obtenue à la suite d’un partitionnement (voir l’exemple des flux migratoires et celui des collaborations scientifiques mondiales). Les opérations de filtrages et d’agrégation des données, courantes en analyse de réseau, permettent de réduire l’information en se concentrant sur un angle particulier, et in fine d’en améliorer la lisibilité. Le choix du seuil pour le filtrage ou de la partition pour la réduction ne sont pas arbitraires, ils font généralement partie intégrante de la démarche de recherche (par exemple, recourir au blockmodel pour obtenir des partitions signifiantes sur un réseau).
Représenter les dynamiques de collaboration scientifique des villes françaises
Objectif et étapes de traitements préliminaires
Dans ce qui va suivre, je vais détailler le processus de construction d’une représentation graphique conçue à des fins de communication scientifique. Le thème de la recherche associée est celui des dynamiques de collaboration scientifique des villes françaises. En partant d’un très grand ensemble de données portant sur le réseau des collaborations scientifiques entre aires urbaines à l’échelle mondiale entre 1999 et 2014, on focalise notre attention uniquement sur l’aspect dynamique de ce réseau et sur le cas des villes françaises. Plus précisément, la question que nous posons est : comment ont évolué les relations scientifiques des villes françaises entre elles et avec l’international au cours de la période étudiée ?
L’attention porte plus particulièrement sur la dynamique d’intégration des petits sites universitaires dans le contexte d’une différentiation croissante imposée par les politiques d’aménagement de la recherche qui se succèdent depuis 2007 en France entre un petit ensemble de grandes “universités de recherche” localisées dans les principales villes universitaires (> 30 000 étudiants) d’une part et les sites universitaires secondaires d’autre part. Ces derniers sont considérés par ces politiques comme moins performants sur le plan scientifique et moins susceptibles de s’intégrer dans les réseaux internationaux (Grossetti et al., 2020).
Pour aborder cette question de l’inégale dynamique d’intégration des villes universitaires françaises au réseau mondial de la science, plusieurs étapes de traitements ont été appliquées.
La première étape a consisté à lisser l’information disponible aux deux extrémités de la série temporelle à l’aide d’une moyenne mobile sur 3 ans, ce qui permet d’obtenir une liste de liens pour l’année 2000 (valeurs 1999-2001) et une autre pour l’année 2013 (valeurs 2012-2014). Cette opération permet de limiter la prise en compte de fluctuations annuelles qui ne seraient pas tant imputables à des écarts d’activité scientifique qu’au rythme inégal de la production scientifique influencée par la périodicité des publications.
La deuxième étape a été celle de l’agrégation des données. Plutôt que d’appliquer une méthodologie de partitionnement du réseau tenant compte de la distribution des relations interurbaines et des proximités relationnelles, nous regroupons les entités urbaines françaises selon leur effectifs étudiants en procédant à une discrétisation en 8 classes : (=> 400 000 ; >= 30 000 ; >= 10 000 ; >= 2000 ; >= 700 ; >=20 ; villes sans étudiants du public ; ville sans étudiants). La première classe comprenant les villes françaises dont les effectifs étudiants sont supérieurs à 400 000 ne compte qu’une seule entité, à savoir l’aire urbaine de Paris qui comptait 400 260 étudiants en inscription principales dans les établissements du public sans double compte d’après les données du Ministère de l’Enseignement Supérieur et de la Recherche en 2014 (en ligne sur la plateforme des données du ministère). Enfin, une dernière et neuvième classe regroupe l’ensemble des villes hors France pour former la catégorie appelée “International”. Le choix de ce partitionnement est dicté par la question de recherche.
Une fois le partitionnement réalisé, c’est-à-dire une fois que l’ensemble des entités urbaines ont été étiquetées en fonction de leur catégorie d’appartenance, nous procédons à une réduction des deux réseaux (celui de 2000 et celui de 2013) c’est-à-dire que nous agrégeons les données pour obtenir une liste de relations entre les différentes classes. Lorsqu’elle fait suite à l’application d’une méthode de blockmodeling, le résultat matriciel de cette opération est une “matrice image” (image-matrix), qui peut se représenter sous la forme d’une matrice ou d’un “graphe réduit” (reduce graph) (voir B comme Blockmodel). Dans notre exemple, le nombre de sommets du graphe obtenu correspond au nombre de classes, soit 8 sommets, dont les relations dépendent du volume total de co-publications entre entités urbaines appartenant à des classes différentes.
La dernière étape nécessaire avant de passer à la représentation est celle du calcul d’une évolution. En effet, comme indiqué précédemment, ce qui nous intéresse pour répondre à la question de recherche n’est pas le volume de collaborations entre les différents types de villes universitaires à une année t mais son rythme d’évolution. Aussi, nous calculons un taux de croissance classique :
(Eij2013– Eij2000)/Eij2013*100
et nous nous intéressons aux valeurs de ce taux pour l’ensemble des relations entre classes.
Passage à la représentation
Pour représenter le résultat obtenu à l’issue de ces traitements, nous pouvons donc opter pour différents modes de visualisation. Compte tenu du faible nombre de relations à représenter (45 liens non dirigés en incluant les liens réfléchis), un large éventail de possibilités est ouvert sans que la lisibilité du résultat n’en soit altéré, mais toutes ces options ne sont pas également pertinentes pour notre question.
En effet, dans la mesure où toutes les relations entre classes de villes existent (graphe complet), et où la valeur que nous voulons représenter n’est pas un volume de relation mais un taux d’évolution, les représentations de type diagramme de chord ou de Sankey telles que suggérées par l’équipe de Data-to-Viz pour représenter les données contenues dans des matrices d’adjacence ne semblent que peu pertinentes.
Comme elle met sur le même plan l’ensemble des relations (cases de même dimension pour chaque relation) et que sa lecture repose sur un gradient de couleur adapté à la représentation d’un taux de croissance, nous avons opté pour la représentation matricielle de type heatmap. Dans le cas des matrices d’adjacence, son principe consiste à représenter visuellement une matrice dont les cases sont colorées selon une intensité qui dépend de la valeur de la variable continue caractérisant les relations. Il est possible que le gradient de couleur décrive l’intensité des relations entre entités pour une période donnée, mais aussi qu’il décrive un taux de croissance. Cette deuxième option est celle adaptée à notre besoin. On notera que Germain Forestier (IRIMAS) a aussi fait le choix de ce mode de visualisation pour représenter l’évolution du taux de positivité du Covid-19 par classe d’âge par semaine en France en 2020 (voir la section heatmaps du tableau de bord qu’il a constitué pour le suivi des données de l’épidémie); de même que Duncan Robertson (Loughborough University) pour les données de l’Angleterre (voir la section heatmaps de sa page personnelle). Par ailleurs, Jacqueline Brown (York University) et ses collaborateurs ont fait le choix de ce mode de visualisation pour représenter la sur-représentation vs la sous-représentation de certaines relations dans le réseau des collaborations qui se sont nouées entre participants de disciplines différentes à l’École d’Été de l’Institut Santa Fe. Dans ce dernier cas, l’intensité représentée sur la heatmap est le résultat d’une opération de calcul d’écart à l’indépendance sur les données relationnelles agrégées au niveau des disciplines des participants (voir la présentation en ligne de leur poster1 par Dakota Murray).
La terminologie “heatmap” peut surprendre car elle désigne à l’origine les cartes de chaleur qui visent à cartographier des foyers de chaleur à partir de données thermiques. Comme ces cartographies sont réalisées à partir de données spatiales de types raster, le principe revient à colorer des carrés (pixels) selon un gradient de couleur. Techniquement, le fait de produire une carte de chaleur au sens classique ou de colorer les cases d’une matrice d’adjacence selon un gradient de couleur est finalement identique d’où l’emploi d’un seul et même terme.
Comment faire des heatmaps avec R ?
Dans l’environnement R, il existe plusieurs moyens permettant de réaliser des heatmaps. Nous en avons identifié trois principaux :
- Premièrement, il y a la fonction ‘heatmap‘ présente dans les fonctions de base du langage R.
- Deuxièmement, il existe la possibilité d’utiliser les fonctions du package ‘ggplot2‘.
- Troisièmement, il existe des packages dédiés comme le package ‘heatmaply‘ qui permet de rendre les figures interactives.
Après avoir généré la matrice relationnelle entre classes de villes françaises spécifiant le taux d’évolution de chaque relations entre 2000 et 2013, nous avons testé le résultat obtenu avec la fonction classique de R, puis nous avons opté pour le package ‘ggplot2‘ qui permet plus facilement d’intégrer une légende continue. L’ensemble de la procédure suivie, les données de la matrice d’adjacence et le code R ont été mis en ligne ici.
La figure obtenue comporte une légende et des clefs de lecture. Elle met en évidence le fort dynamisme des sites secondaires. De fait, le taux de croissance des collaborations scientifiques des villes universitaires entre 700 et 2000 étudiants entre elles et avec l’international dépasse 55 % (tout comme le taux de croissance des villes internationales entre elles). En comparaison le taux de croissance des collaborations scientifiques de Paris avec le reste des villes françaises et avec l’international apparaît faible. Il est situé entre 30 et 50 %. Il en ressort que la dynamique d’intégration des villes universitaires secondaires au système la science mondiale est positive. Cette figure permet d’attirer l’attention sur le fait que, compte tendu des tendances de long terme, gréver les capacités de recherche des petites villes universitaires en les privant de moyens humains et financiers, c’est prendre le risque de pénaliser la vitalité de la recherche française dans son ensemble.
Deux dernières manipulations sur les données sont à noter qui sont présentes et commentées dans le code R partagé ici.
Premièrement, on notera que les classes de villes n’ayant aucun étudiant et aucun étudiants du public ont été retirées de la figure. De fait, ces villes correspondent en principe à des sites ne disposant d’aucun établissement d’enseignement supérieur public (les différences entre les données d’effectifs étudiants du ministère sans double compte et celles accessibles sur la plateforme data.gouv.fr sont toutefois importantes et mériteraient d’être explorées davantage2). Ces villes ici exclues sont présentes dans notre jeu de données d’origine car elles participent à la production scientifique mondiale. Nous avons cependant fait le choix de les retirer car leur intégration à la figure n’apportait rien à la question posée pour notre recherche.
Deuxièmement, on notera que la matrice représentée n’est pas carrée. Cela s’explique par le cas particulier de la classe dans laquelle se trouve Paris à savoir la classe des villes françaises de plus de 400 000 étudiants. Comme l’agglomération parisienne est seule dans cette classe, il n’y a donc pas de relation interurbaine définie à l’intérieur de cette classe. En effet, le jeu de données de départ décrit l’ensemble des relations interurbaines et nous ne disposons pas d’informations sur les relations scientifiques intra-urbaines. Pour le dire autrement, la valeur des relations se trouvant dans la diagonale de la matrice dépend de la croissance des échanges entre villes appartenant à la même catégorie. On lit par exemple sur le graphique que les villes françaises ayant entre 2000 et 10 000 étudiants ont noué moins de nouvelles collaborations entre elles et avec Paris (taux de croissance situé entre 40 et 50 %) qu’avec les villes des autres classes et avec l’international (taux de croissance supérieur à 50 %). Aussi, nous avons choisi de retirer la case de Paris avec elle-même qui serait apparue vide si nous l’avions conservée sur la figure.
Valorisation
La figure présentée dans ce billet a été conçue pour s’intégrer à l’article “Comment la loi de programmation de la recherche aggrave les inégalités entre territoire en France” paru dans The Conversion France. Il résulte d’un travail de réflexion sur les logiques territoriales des politiques de recherche françaises et a été élaboré par un collectif de géographes du CNRS et de l’Université de Paris : Sophie Baudet-Michel, Sandrine Berroir, Claude Grasland, Marianne Guérois, Malika Madelin, Pierre Pistre, Josyane Ronchail, Christine Zanin et moi-même.
En savoir plus sur les données sources :
Dans le jeu de données de départ, le niveau élémentaire d’analyse est celui de l’aire urbaine et les données se présentent sous la forme d’une liste de liens entre l’ensemble des entités urbaines mondiales ayant contribué à au moins une co-publication scientifique indexée dans le Science Citation Index Expanded entre 1999 et 2014. Le nombre total de co-publications par paires d’entités urbaines est disponible pour chaque année. Ces données résultent de traitements réalisés dans le cadre du projet NETSCIENCE. La méthodologie et les principaux résultats associés à ce projet de géographie des sciences sont présentés en ligne sur le site vitrine GéoSciMo.
Références
1Je remercie Dakota Murray (Université de Bloomington à Indiana) – co-auteur du poster sur l’École d’Été de l’Institut Santa Fe présenté à l’édition 2020 du colloque de la Network Science Society Conference – d’avoir échangé avec moi sur les moyens de produire une heatmap à l’aide des fonctions de ‘ggplot2‘. Nos échanges m’ont fait gagner un temps précieux pour régler de petits détails et pour me convaincre qu’utiliser ce package suffirait pour obtenir ce que je souhaitais : légende continue et rendu de qualité.
2Merci à Robin Cura et Thomas Louail (CNRS, Géographie-cités) d’avoir attiré mon attention sur le fait que j’avais dans un premier temps mobilisé les données d’effectifs étudiants avec double compte, ce qui avait abouti à construire des classes dont les effectifs affichés étaient supérieurs aux effectifs réels. Changer de source d’information et se concentrer sur les données sans double compte m’a conduite, en contrepartie, à abandonner un nombre conséquent de villes, villes pour lesquelles les effectifs sans double compte du public ne sont pas renseignés (soit parce qu’on y trouve uniquement des établissements privés, soit parce que certaines catégories d’étudiants ne sont pas comptabilisées dans cette seconde source).
OpenEdition vous propose de citer ce billet de la manière suivante :
Marion Maisonobe (29 septembre 2020). De la matrice d’adjacence à la heatmap – mini tuto avec R. groupe fmr (flux, matrices, réseaux). Consulté le 4 octobre 2024 à l’adresse https://doi.org/10.58079/p85m