{"word_count": 1047, "character_count": 6793}
Ce joli tutoriel sur les premières étapes d'une construction de réseau bipartite avec R remarque que ce sont ces toutes premières étapes, où il faut penser en "listes" et en "matrices", qui sont les plus difficiles.J'aimerais fournir un exemple de cette difficulté, qui me semble flagrante en sciences sociales où l'on se dispense généralement de réfléchir à la géométrie des données autrement que par la pratique ((La difficulté sous-jacente résidant dans la manipulation des arrays, celle-ci concerne aussi tout langage informatique qui peut manipuler des objets de taille supérieure à 1, donc pas de souci à se faire, on est bien sur un problème répandu et partagé.)).Hier, une étudiante me disait que l'exercice le plus compliqué du cours du semestre dernier était celui où il fallait trouver la manière la plus efficace de coder numériquement – dans une feuille de tableur, par exemple – le graphique suivant :Le graphique est un tableau qui représente les rencontres entre les personnages des Misérables : chaque fois qu'un personnage en a rencontré un autre, la case du graphique est colorée. L'auteur des données (qui fait par ailleurs partie du Panthéon de la science informatique pour ses recherches en algorithmique) n'a oublié que quelques relations.Oubliez les couleurs différentes, car ce qui compte, comme l'indique Étienne dans son tutoriel, se trouve sur les bords du tableau. La caractéristique essentielle ici est que les colonnes et les lignes contiennent les mêmes noms : le réseau que contient ce tableau, qui va de personnage à personnage, est dit “unipartite” car il contient un seul type d'entité ((Ce réseau est aussi très faiblement dense : il contient peu de relations par rapport à l'ensemble des relations possibles, représenté par l'intégralité des cases du tableau. Le codage le plus efficace pour ce graphique est une matrice creuse. Quelques étudiants sont intuitivement arrivés à ce résultat lorsque j'ai corrigé l'exercice en classe, mais la vaste majorité se demandait ce qu'on avait fumé.)).Une fois converti en réseau, ce graphique donne l'équivalent de ce que vous pouvez obtenir en dessinant la “rosace” de vos amis Facebook, en les pointant sur un cercle et en les reliant par un arc à chaque fois qu'ils se connaissent aussi entre eux : un réseau d'interconnaissance où un seul type d'acteur apparaît. En voici un autre exemple :Dans ce réseau unipartite, les liens vont de banque à banque, et dans les précédents, les liens allaient d'individu à individu. Mais ces représentations gomment les intermédiaires de ces relations : par quels ressources financières les banques établissent-elles ces liens ? dans quels bâtiments les individus se rencontrent-ils ?Ces intermédiaires sont parfois pertinents pour l'analyse, et presque toujours pertinents pour l'exploration, ce qui demande d'introduire une entité supplémentaire dans les données. Dans un réseau bipartite ou “à deux modes”, les relations vont ainsi d'un type d'entité à un autre, établissant la jonction entre deux surfaces réticulaires.Comme le signale Étienne, l'exemple classique de ce type de réseau est celui des réseaux d'affiliation entre des individus et des groupes, qui contiennent par exemple des artistes de hard rock et les groupes auxquels ils ont participé. Les couleurs distinguent les deux modes du réseau artiste-groupe :Le mode primaire d'un réseau social à deux modes est généralement un agent et le mode secondaire une structure, qui peut être de n'importe quelle nature : par exemple, en ce qui concerne les featurings dans le rap français, les artistes peuvent être liés par des albums solo, des compilations ou des groupes. L'application aux communautés en ligne est également aisée, comme dans l'exemple ci-dessous :On peut aller plus loin et introduire n types d'entités dans ce qu'on appellera alors un réseau k-partite, ou “hyper-réseau”, avec un mode primaire et tout plein de modes secondaires imbriqués les uns dans les autres. Pour illustrer cette catégorie, les réseaux sociaux qui utilisent des “tags” pour désigner leurs “ressources” (vidéos, liens, billets…) fournissent un bon exemple de réseau tripartite, représenté ici tout à droite :Les questions qui se posent dans cette configuration des données évoquent celle des structures multi-niveaux, où chaque niveau va obéir à ses propres règles de variabilité, croisée avec celles des réseaux, où chaque observation est structurellement dépendante d'une partie des autres, ce qui a pour effet de rendre inopérants les modèles homoscédastiques auxquels on est généralement habitué en sciences sociales ((Le format des enseignements de statistiques introductives encourage clairement à privilégier ces approches, probablement avec raison dans la mesure où tous les enseignements sur l'inférence linéaire sont utiles pour analyser des réseaux.)).Ce croisement se modélise assez bien, même si les temps de calcul sont plutôt longs, car les matrices étudiées sont larges et que la simulation de données aléatoires dans des dimensions identiques aux données réelles y intervient à plusieurs reprises, généralement à plusieurs milliers d'occurrences. Ces problèmes se posent et se résolvent dans des termes analogues en dehors des sciences sociales proprement dites.La manipulation de réseaux requiert ces différentes représentations spatiales, qui se traduisent fondamentalement par des listes et des matrices, et qui se prolongent ensuite dans des objets de type “réseau” : objets de classe igraph ou network dans R, fichiers GEXF manipulables avec Gephi, données aux format Pajek ou UCINET…D'où l'utilité de ce qu'indique Étienne, et aussi de tout ce que Baptiste a pu raconter au fil de ses billets, sur les toutes premières étapes de construction de ces réseaux, car la chaîne des opérations qui suit est plus longue et plus complexe que pour l'analyse de données “plates”, comme les tableaux croisés, plus familières en sciences sociales, mais parfois moins efficaces pour se représenter une réalité intrinsèquement relationnelle à un degré élevé de granularité empirique ((Merci également à Pedro Jordano, qui m'a initié à ces notions lorsque j'ai commencé à étudier la visualisation de réseaux, à la fois pour apprendre un peu de programmation fonctionnelle et pour enfin comprendre un manuel que j'avais photocopié en intégralité il y a presque dix ans, sans jamais le lire ensuite.)).Il n'y a pas de révolution méthodologique associée à ces techniques de mesure et de visualisation, notamment parce que le reste des méthodes fonctionne plutôt bien au regard des objectifs interprétatifs que l'on se donne, mais les réseaux permettent d'alimenter les modèles avec des données plus proches de certaines représentations relationnelles de la réalité, ce dont on a assez régulièrement besoin en sociologie.