Réseaux “aléatoires”, suite
J’ai essayé de comprendre un peu plus précisément les résultats du billet précédent.
Partons d’un réseau bimodal représenté, ci-dessous, sous la forme d’une matrice puis d’un graphe :
— | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 |
a | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
b | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
c | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
d | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
e | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
f | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
g | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
h | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
i | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
On peut comprendre ce réseau comme une description d’événements (X1 à X8) auxquels participent (ou non), les personnes “a”… “i”.
Ce réseau est un peu spécifique : Le premier et le deuxième “événement” (X1 et X2) réunissent les mêmes personnes (a, b et d), la personne “c” participant au 2e événement seulement. J’observe, dans les invitations de pasteurs repérées sur les affiches pentecôtistes, le même genre de “réinvitations”.
Ce qui m’intéressait était de comparer ce réseau avec des réseaux qui auraient une structure similaire. Par “structure similaire”, j’entends “les marges des matrices sont les mêmes” : l’événement X a n participants dans le réseau de départ et dans le réseau auquel on le compare.
Un problème similaire s’est posé en “écologie quantitative” (ou écologie des communautés) : on peut imaginer que la matrice, plutôt que de représenter un réseau, représente une “communauté” (en colonne, les espèces — présentes ou non –, et en ligne, des lieux échantillonés). On en trouve, par exemple, un usage dans cet article
Partitioning of functional diversity reveals the scale and extent of trait convergence and divergence ou dans cet autre article Using biodiversity deconstruction to disentangle assembly… :
We generated 1000 random matrices by a quasi swap algorithm (Miklós & Podani, 2004) using the function ‘commsimulator’ in vegan for R (Oksanen et al., 2007). The null matrices were subsequently uploaded into a custom-coded (…)
Ce problème, sous des formes plus proches des miennes, s’est aussi posé à des sociologues travaillant sur des réseaux sociaux. Jean Finez, travaillant sur la co-participation aux comités d’administration (les liens interlocks), a tenté d’en comprendre la logique en les comparant à des réseaux aléatoires de même structure Solidarités patronales et formation des interlocks [halshs] :
nous comparons le réseau des interlocks à des réseaux générés aléatoirement de manière à mettre en évidence ses spécificités et à ne pas mésinterpréter des propriétés qui relèvent en fait des contraintes juridiques et organisationnelles. Nous avons généré 50 réseaux aléatoires bimodaux, construits de manière à posséder de nombreuses caractéristiques identiques à celles du réseau interlock. […]
Dans chaque réseau aléatoire bimodal, les conseils d’administration sont choisis par les individus par un tirage dans une loi uniforme. En outre, les réseaux ont été construits de manière à partager de nombreuses caractéristiques avec le réseau interlock de l’élite de premier ordre. Premièrement, comme dans le réseau réel, chaque réseau aléatoire est composé de 27 sommets « dirigeants » et de 40 sommets « entreprises » reliés par 91 liens dirigeants-entreprises. Deuxièmement, chaque dirigeant est présent dans 3 à 5 conseils d’administration et chacune des 40 entreprises ne peut accueillir plus de 18 dirigeants.
J’ai donc utilisé, dans le package “vegan”, l’instruction commsimulator (méthode “quasi swap”), qui génère une matrice aléatoire respectant les marges de la matrice de départ.
Souvent, l’instruction va donner quelque chose de ce genre : Il n’y a plus que 2 composantes (par rapport au réseau de départ, il y a moins de “ré-invitations”.)
Si l’on génère 10 000 réseaux, l’histogramme du nombre de composantes est celui-ci :
A quelques 500 reprises, des réseaux à 3 composantes apparaissent. Et, surprise, à 3 reprises, des réseaux à 4 composantes (très rares, donc, dans cette configuration).
Voici ce réseau à 4 composantes respectant les contraintes de départ :
Dans cet exemple, les “ré-invitations” sont maximales.
2 commentaires
Un commentaire par J.Finez (15/02/2011 à 13:46)
Merci pour la pub ! ;)
Un commentaire par Nul, mais pas si nul que ça! | Scenopoésie et Facteur d'impact (11/09/2011 à 18:52)
[…] mettez des interactions au hasard dans un réseau, vous pouvez obtenir une structure aléatoire (Baptiste Coulmont en parle pour des réseaux sociaux). Donc, une approche simple, c’est de prendre un réseau […]