soit un graphe réalisé par les étudiants du master ERPUR 2015-16 lors de leur analyse de 5 entretiens avec les acteurs de la TVB d'une commune périurbaine d'où sont extraits un indice des relations entre ces acteurs de 0 à 3 et dont l'importance (degré) est illustrée par la taille des nœuds, des polices et des liens
![TVB_groupe1.jpg, juin 2016](../../public/TVB_groupe1.jpg)
voici le fichier des acteurs
Id Label
1 Syndicat mixte
2 Conseil Regional
3 DREAL Bretagne
4 Communaute de Communes
5 Elus
6 Chambre dagriculture
7 Camp militaire
8 Cabinet specialise
9 Conseil departemental
10 Habitants
11 Agriculteurs
12 Agence de l'eau
13 Associations naturalistes
14 Monde scientifique
et voici le fichier de leurs relations (source-target) établi à travers le traitement des différents entretiens
(labels) avec les poids de celles-ci
Source Target Type Id Label Weight
1 8 Undirected 1 ent_Syndicat mixte 1.0
1 9 Undirected 1 ent_Syndicat mixte 1.0
1 10 Undirected 1 ent_Syndicat mixte 1.0
1 5 Undirected 1 ent_Syndicat mixte 3.0
1 11 Undirected 1 ent_Syndicat mixte 3.0
2 3 Undirected 2 ent_Conseil Regional 3.0
2 11 Undirected 2 ent_Conseil Regional 1.0
2 9 Undirected 2 ent_Conseil Regional 1.0
2 5 Undirected 2 ent_Conseil Regional 1.0
2 6 Undirected 2 ent_Conseil Regional 1.0
2 12 Undirected 2 ent_Conseil Regional 1.0
2 1 Undirected 2 ent_Conseil Regional 1.0
2 13 Undirected 2 ent_Conseil Regional 1.0
5 10 Undirected 4 ent_Maire 3.0
5 11 Undirected 4 ent_Maire 3.0
5 1 Undirected 4 ent_Maire 1.0
5 9 Undirected 4 ent_Maire 1.0
5 8 Undirected 4 ent_Maire 3.0
5 4 Undirected 4 ent_Maire 1.0
5 10 Undirected 5 ent_Adjoint Mairie 3.0
5 11 Undirected 5 ent_Adjoint Mairie 3.0
5 12 Undirected 5 ent_Adjoint Mairie 3.0
5 5 Undirected 5 ent_Adjoint Mairie 3.0
5 4 Undirected 5 ent_Adjoint Mairie 1.0
3 13 Undirected 3 ent_DREAL Bretagne 3.0
3 14 Undirected 3 ent_DREAL Bretagne 1.0
3 11 Undirected 3 ent_DREAL Bretagne 3.0
3 5 Undirected 3 ent_DREAL Bretagne 3.0
3 4 Undirected 3 ent_DREAL Bretagne 3.0
3 12 Undirected 3 ent_DREAL Bretagne 3.0
il est possible depuis Gephi d'exporter le réseau ainsi réalisé sous deux formats importables ensuite dans R : le format .net (pajek) et le format .gml
dans R,
#ouvrir igraph
> library(igraph)
#ouvrir un graphe exporté en pajek par gephi
> g <- read.graph("TVB.net", format="pajek")
> plot(g)
ou bien
#ouvrir un graphe exporté en gml par gephi
> g <- read.graph("TVB.gml", format="gml")
> plot(g)
#selon les besoins, il est possible de masquer les labels des liens de manière définitive
> E(g)$label <- NA
> plot(g)
# fixer la taille des nœuds en fonction des liens
> deg <- degree(g, mode="all")
> V(g)$size <- deg*2
> plot(g)
#pour afficher les id
>plot(g,vertex.label=V(g)$id,)
![igraph_id.jpg, juin 2016](../../public/igraph_id.jpg)
# détection des communautés sur la base de la centralité d'intermédiarité (Newman-Girvan) : la centralité d'intermédiarité (« betweenness centrality ») compte le
nombre de fois où un nœud agit comme un point de passage le long du plus
court chemin entre deux autres nœuds (= intermédiaire)
> ceb <- cluster_edge_betweenness(g)
> dendPlot(ceb, mode="hclust")
#représentation des résultats du cluster d'intermédiarité
> plot(ceb,g)
![plot_edge_betweeness.jpg, juin 2016](../../public/plot_edge_betweeness.jpg)
#pour représenter les subdivisions denses du graphe : optimisation de la modularité qui mesure la qualité d'un partitionnement des nœuds d'un réseau en communautés (parties du graphe les plus connectées entre elles, les ensembles qui ont une forte densité interne et une faible densité externe)
>cfg <- cluster_fast_greedy(as.undirected(g))
> dendPlot(cfg, mode="hclust")
![clust_communaute__greed_opt_modularity.jpg, juin 2016](../../public/clust_communaute__greed_opt_modularity.jpg)
#représentation des résultats du cluster de modularité
>plot(cfg, as.undirected(g))
![subdiv_denses.jpg, juin 2016](../../public/subdiv_denses.jpg)
il est possible de revenir sur Gephi et d'ouvrir la fenêtre statistiques pour calculer la modularité puis l'employer comme paramètre supplémentaire de représentation du graphe : couleurs des nœuds selon la modularité afin d'identifier les trois communautés, et tailles des nœuds selon le nombre de liens
Parameters:
Randomize: On
Use edge weights: On
Resolution: 1.0
Results:
Modularity: 0,221
Modularity with resolution: 0,221
Number of Communities: 3
![gephi_modularite_.png, juin 2016](../../public/gephi_modularite_.png)
#un autre algorithme permet de calculer la modularité, basé sur la méthode de Louvain (1), méthode ascendante et multi-niveau.
> cluster_louvain(g)
IGRAPH clustering multi level, groups: 3, mod: 0.23
+ groups:
$`1`
[1] 7
$`2`
[1] 1 5 8 9 10 11
$`3`
[1] 2 3 4 6 12 13 14
> groups <- membership(cluster_louvain(g))
> communities <- communities(cluster_louvain(g))
> plot.igraph(g, mark.groups = communities)
![cluster_louvain.png, juin 2016](../../public/cluster_louvain.png)
On voit qu'avec cet algorithme, la position des agriculteurs a changé, il est donc préférable de tester les méthodes et de les choisir en fonction de nos hypothèses de travail.
Par ailleurs, avant de passer à l'interprétation de ces graphes, la question que l'on doit se poser est relative à la qualité de la collecte des informations traitées : le protocole basé sur l'analyse des entretiens, le nombre de ceux-ci, hormis toute autre source de données textuelles ou d'observation, seront-il suffisant pour appuyer notre analyse ?
biblio :
[1] V. Blondel, J.-L. Guillaume, R. Lambiotte, et E. Lefebvre, « Fast unfolding of communities in large networks », Journal of Statistical Mechanics, vol. 2008, no 10, sept. 2008.
sources :
http://kateto.net/
https://fr.wikipedia.org/wiki/Centralité
https://fr.wikipedia.org/wiki/Modularité
Keyword - graphe
jeudi 23 juin 2016
graphe avec gephi & igraph avec R
Par Eric Collias le jeudi 23 juin 2016, 20:30 - outillage