SlideShare une entreprise Scribd logo
1  sur  17
Analyse de réseaux avec R 
Analyse de réseaux avec R 
Une courte introduction 
Laurent Beauguitte (CNRS, UMR IDEES) 
http://groupefmr.hypotheses.org/ 
Août 2014 - École thématique Ferney-Voltaire
Analyse de réseaux avec R 
Questions & principes de base 
I Pourquoi R ? 
I Interface de RStudio 
I Principes généraux 
I Obtenir de l'aide. . . 
I Créer des objets 
I Importer des chiers (read.table) 
I Contrôler l'import (str)
Analyse de réseaux avec R 
Deux packages généralistes (statnet et igraph) non compatibles : 
utiliser l'un ou l'autre 
Pour démarrer une session : 
rm(list=ls()) # vider l'espace de travail 
library(statnet) # charger le package 
ou 
rm(list=ls()) # vider l'espace de travail 
library(igraph) # charger le package
Analyse de réseaux avec R 
Visualiser un jeu de données 
rm(list=ls()) 
library(statnet) 
gplot(rgraph(10, tprob=0.2)) #random graph, 10 sommets 
#proba 20% 
library(igraph) 
plot(erdos.renyi.game(10, 1/5))
Analyse de réseaux avec R 
Mesures de base 
statnet igraph 
densité gden graph.density 
comp. connexes components clusters 
degré degree degree 
betweenness betweenness betweenness 
closeness closeness closeness 
PCC* geodist shortest.paths 
cliques clique.census cliques 
k-cores kcores graph.coreness 
*PCC : plus court chemin
Analyse de réseaux avec R 
Saisir les données : éditeur de texte (Notepad++), format .txt ou 
.csv 
Importer des données 
#liste de liens : origine, destination, attributs 
library(statnet) 
d - read.table(data.csv, header=TRUE, sep=;) 
g - as.network(as.matrix(d)) 
g 
library(igraph) 
g - graph.data.frame(d) 
g
Analyse de réseaux avec R 
Importer des attributs pour les sommets (avec igraph) 
Une liste de liens origine - destination - attribut 1 - attribut 2, etc. 
Une liste de sommets - attribut 1 - attribut 2, etc 
rm(list=ls()) 
liens - read.table(liens.csv, header=TRUE, sep=;) 
g - graph.data.frame(liens) 
sommets - read.table(sommets.csv, header=TRUE, sep=;) 
V(g)$Att=sommets$A[match(V(g)$name,sommets$S)] 
# S = code des sommets, A = attribut des sommes 
#variation taille selon attribut 
plot(g, vertex.size = as.numeric(V(g)$Att)*10)
Analyse de réseaux avec R 
Idem avec statnet 
rm(list=ls()) 
library(statnet) 
d - read.table(liens.csv, header=TRUE, sep=;) 
str(d) 
da - read.table(sommets.csv, header=TRUE, sep=;) 
str(d) 
g - as.network(as.matrix(d[,-3])) 
g 
g %v% AGE - da$A 
gplot(g, gmode=graph, displaylabels=TRUE, 
vertex.cex= da$A)
Analyse de réseaux avec R 
Graphe biparti (pas de mesure possible - statnet - ou résultats 
faux - igraph) 
rm(list=ls()) 
library(igraph) 
d - read.table(biparti.csv, sep=;, header=FALSE) 
g - graph.data.frame(d, directed = FALSE) 
g 
library(statnet) 
g - as.network(as.matrix(d), bipartite = TRUE) 
g
Analyse de réseaux avec R 
Extraire et visualiser les ego-networks 
library(statnet) 
ego - ego.extract(g) 
gplot(ego$a, displaylabels=TRUE, labels=colnames(ego$a), 
gmode=graph)
Analyse de réseaux avec R 
Soit le graphe suivant : 
I quel est le diamètre du graphe ? 
I combien y-a-t'il de cliques avec 3 sommets ? avec 4 ? 
I quels sont les sommets les plus centraux ? en terme de degré ? 
en terme d'intermédiarité ?
Exercice 1 
I créer le chier de liens correspondant à cette gure (format 
conseillé .csv) ; 
I l'importer dans R ; 
I le transformer en objet igraph ou network ; 
I chercher les cliques ; 
I mesurer le diamètre, le degré, l'intermédiarité.
Analyse de réseaux avec R 
Avec statnet et/ou igraph, visualiser en faisant apparaître les 
attributs des sommets (couleur), le degré (taille) et l'intensité des 
liens (épaisseur). 
Exemples 
statnet igraph
Analyse de réseaux avec R 
Structure des données 
exoliens.csv exosommets.csv 
O;D;I code;attribut 
a;b;3 a;1 
a;c;2 b;1 
a;d;1 c;1 
... d;2 
... 
Si vous changez les noms de colonnes, il faudra adapter le code 
donné ensuite 
Et il y aura la solution ensuite. . .
rm(list=ls()) 
library(igraph) 
#import des fichiers liens et sommets 
lien - read.table(exoliens.csv, sep=;, header=TRUE) 
somm - read.table(exosommets.csv, sep=;, header=TRUE) 
#transformation en objet igraph 
#import de l'attribut des sommets 
g - graph.data.frame(lien, directed= FALSE) 
V(g)$Att -somm$attribut[match(V(g)$name,somm$code)] 
#mesures 
graph.density(g) 
degree(g) 
betweenness(g) 
max(shortest.paths(g)) 
cliques(g, min = 3)
#visualisation 
colors = c(Red,Yellow) 
V(g)$Att[V(g)$Att == 1] = colors[1] 
V(g)$Att[V(g)$Att == 2] = colors[2] 
edgeW - get.edge.attribute(g, I) 
#ouverture fenetre graphique 
X11() 
plot(g, vertex.size = degree(g)*10, vertex.color= V(g)$Att, 
edge.width = edgeW*2, edge.color = Black)
detach(package:igraph) 
library(statnet) 
g - as.network(as.matrix(lien[,-3]), directed = FALSE) 
g 
gden(g) 
betweenness(g) 
geodist(g) 
clique.census(g, mode=graph) 
X11() 
gplot(g, gmode = graph, displaylabels=TRUE, 
vertex.cex= sqrt(degree(g)), 
vertex.col = somm$attribut, 
edge.lwd = lien$I)

Contenu connexe

Tendances

E-learning pour la formation des formateurs. De la conception à l’implémentat...
E-learning pour la formation des formateurs. De la conception à l’implémentat...E-learning pour la formation des formateurs. De la conception à l’implémentat...
E-learning pour la formation des formateurs. De la conception à l’implémentat...eraser Juan José Calderón
 
Chap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGISChap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGISMohammed TAMALI
 
Analyse de données - 2Cours officiel.pdf
Analyse de données - 2Cours officiel.pdfAnalyse de données - 2Cours officiel.pdf
Analyse de données - 2Cours officiel.pdfoussamaEchouiyab
 
Data Analyse pas à pas avec R
Data Analyse pas à pas avec RData Analyse pas à pas avec R
Data Analyse pas à pas avec RAmar LAKEL, PhD
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Bases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISBases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISOmar El Kharki
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Les fondamentaux de la classe inversée
Les fondamentaux de la classe inverséeLes fondamentaux de la classe inversée
Les fondamentaux de la classe inverséeMokhtar Ben Henda
 
Classes inversées, Pistes pédagogiques
Classes inversées, Pistes pédagogiquesClasses inversées, Pistes pédagogiques
Classes inversées, Pistes pédagogiquesMarcel Lebrun
 
Munidapolis guide ms project
Munidapolis guide ms projectMunidapolis guide ms project
Munidapolis guide ms projecthindif
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
Langage RDF/RDFs
Langage RDF/RDFsLangage RDF/RDFs
Langage RDF/RDFsRached Krim
 
Programmation sur GPU avec CUDA
Programmation sur GPU avec CUDAProgrammation sur GPU avec CUDA
Programmation sur GPU avec CUDAIn Fine
 

Tendances (20)

C#
C#C#
C#
 
E-learning pour la formation des formateurs. De la conception à l’implémentat...
E-learning pour la formation des formateurs. De la conception à l’implémentat...E-learning pour la formation des formateurs. De la conception à l’implémentat...
E-learning pour la formation des formateurs. De la conception à l’implémentat...
 
Chap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGISChap VI 1-Elements de Pratique des SIG sous QGIS
Chap VI 1-Elements de Pratique des SIG sous QGIS
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
Analyse de données - 2Cours officiel.pdf
Analyse de données - 2Cours officiel.pdfAnalyse de données - 2Cours officiel.pdf
Analyse de données - 2Cours officiel.pdf
 
Data Analyse pas à pas avec R
Data Analyse pas à pas avec RData Analyse pas à pas avec R
Data Analyse pas à pas avec R
 
Poly
PolyPoly
Poly
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Initiation r
Initiation rInitiation r
Initiation r
 
Bases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISBases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGIS
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Les fondamentaux de la classe inversée
Les fondamentaux de la classe inverséeLes fondamentaux de la classe inversée
Les fondamentaux de la classe inversée
 
Classes inversées, Pistes pédagogiques
Classes inversées, Pistes pédagogiquesClasses inversées, Pistes pédagogiques
Classes inversées, Pistes pédagogiques
 
Munidapolis guide ms project
Munidapolis guide ms projectMunidapolis guide ms project
Munidapolis guide ms project
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Langage RDF/RDFs
Langage RDF/RDFsLangage RDF/RDFs
Langage RDF/RDFs
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Programmation sur GPU avec CUDA
Programmation sur GPU avec CUDAProgrammation sur GPU avec CUDA
Programmation sur GPU avec CUDA
 
Word Embedding
Word EmbeddingWord Embedding
Word Embedding
 

Similaire à Introduction à l'analyse de réseaux avec R

Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptxssusera0d0e81
 
R fait du la tex
R fait du la texR fait du la tex
R fait du la texCdiscount
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdfOuailChoukhairi
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Pythonyboussard
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJosé Paumard
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHPAbdoulaye Dieng
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer Alexandru Radovici
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Normandy JUG
 
Analyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxAnalyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxanashoummas
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDidier Plaindoux
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
Beyond F5 - windbg et .Net
Beyond F5 - windbg et .NetBeyond F5 - windbg et .Net
Beyond F5 - windbg et .NetYann Schwartz
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 

Similaire à Introduction à l'analyse de réseaux avec R (20)

Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptx
 
R fait du la tex
R fait du la texR fait du la tex
R fait du la tex
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patterns
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
R-Lab-1-ppt.pdf
R-Lab-1-ppt.pdfR-Lab-1-ppt.pdf
R-Lab-1-ppt.pdf
 
Une Introduction à R
Une Introduction à RUne Introduction à R
Une Introduction à R
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
Analyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxAnalyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptx
 
Dijkstra kshortest
Dijkstra kshortestDijkstra kshortest
Dijkstra kshortest
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Cours 01.pptx
Cours 01.pptxCours 01.pptx
Cours 01.pptx
 
Beyond F5 - windbg et .Net
Beyond F5 - windbg et .NetBeyond F5 - windbg et .Net
Beyond F5 - windbg et .Net
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 

Plus de Laurent Beauguitte

Three NSBM circles. Between local ancrage & global network
Three NSBM circles. Between local ancrage & global networkThree NSBM circles. Between local ancrage & global network
Three NSBM circles. Between local ancrage & global networkLaurent Beauguitte
 
Analyse de réseaux en sciences sociales en général... et en histoire en parti...
Analyse de réseaux en sciences sociales en général... et en histoire en parti...Analyse de réseaux en sciences sociales en général... et en histoire en parti...
Analyse de réseaux en sciences sociales en général... et en histoire en parti...Laurent Beauguitte
 
Do International News Reflect World Hierarchy? A Network Approach
Do International News Reflect World Hierarchy? A Network ApproachDo International News Reflect World Hierarchy? A Network Approach
Do International News Reflect World Hierarchy? A Network ApproachLaurent Beauguitte
 
Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...
Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...
Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...Laurent Beauguitte
 
The US and the UK (1970-2010): Ordinary trading partners?
The US and the UK (1970-2010): Ordinary trading partners?The US and the UK (1970-2010): Ordinary trading partners?
The US and the UK (1970-2010): Ordinary trading partners?Laurent Beauguitte
 
Spatial Models of Intra-Urban Behaviours
Spatial Models of Intra-Urban BehavioursSpatial Models of Intra-Urban Behaviours
Spatial Models of Intra-Urban BehavioursLaurent Beauguitte
 
L'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieuxL'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieuxLaurent Beauguitte
 
Les principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseauLes principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseauLaurent Beauguitte
 
Les flux RSS pour les études territoriales
Les flux RSS pour les études territorialesLes flux RSS pour les études territoriales
Les flux RSS pour les études territorialesLaurent Beauguitte
 
Régionalisation politique et gouvernance mondiale. L’ONU au prisme des réseaux
Régionalisation politique et gouvernance mondiale. L’ONU au prisme des réseauxRégionalisation politique et gouvernance mondiale. L’ONU au prisme des réseaux
Régionalisation politique et gouvernance mondiale. L’ONU au prisme des réseauxLaurent Beauguitte
 

Plus de Laurent Beauguitte (12)

Three NSBM circles. Between local ancrage & global network
Three NSBM circles. Between local ancrage & global networkThree NSBM circles. Between local ancrage & global network
Three NSBM circles. Between local ancrage & global network
 
20170321georeseaux
20170321georeseaux20170321georeseaux
20170321georeseaux
 
20170320logiciels
20170320logiciels20170320logiciels
20170320logiciels
 
Analyse de réseaux en sciences sociales en général... et en histoire en parti...
Analyse de réseaux en sciences sociales en général... et en histoire en parti...Analyse de réseaux en sciences sociales en général... et en histoire en parti...
Analyse de réseaux en sciences sociales en général... et en histoire en parti...
 
Do International News Reflect World Hierarchy? A Network Approach
Do International News Reflect World Hierarchy? A Network ApproachDo International News Reflect World Hierarchy? A Network Approach
Do International News Reflect World Hierarchy? A Network Approach
 
Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...
Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...
Modéliser l’attractivité des lieux globaux Une enquête internationale auprès ...
 
The US and the UK (1970-2010): Ordinary trading partners?
The US and the UK (1970-2010): Ordinary trading partners?The US and the UK (1970-2010): Ordinary trading partners?
The US and the UK (1970-2010): Ordinary trading partners?
 
Spatial Models of Intra-Urban Behaviours
Spatial Models of Intra-Urban BehavioursSpatial Models of Intra-Urban Behaviours
Spatial Models of Intra-Urban Behaviours
 
L'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieuxL'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieux
 
Les principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseauLes principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseau
 
Les flux RSS pour les études territoriales
Les flux RSS pour les études territorialesLes flux RSS pour les études territoriales
Les flux RSS pour les études territoriales
 
Régionalisation politique et gouvernance mondiale. L’ONU au prisme des réseaux
Régionalisation politique et gouvernance mondiale. L’ONU au prisme des réseauxRégionalisation politique et gouvernance mondiale. L’ONU au prisme des réseaux
Régionalisation politique et gouvernance mondiale. L’ONU au prisme des réseaux
 

Introduction à l'analyse de réseaux avec R

  • 1. Analyse de réseaux avec R Analyse de réseaux avec R Une courte introduction Laurent Beauguitte (CNRS, UMR IDEES) http://groupefmr.hypotheses.org/ Août 2014 - École thématique Ferney-Voltaire
  • 2. Analyse de réseaux avec R Questions & principes de base I Pourquoi R ? I Interface de RStudio I Principes généraux I Obtenir de l'aide. . . I Créer des objets I Importer des chiers (read.table) I Contrôler l'import (str)
  • 3. Analyse de réseaux avec R Deux packages généralistes (statnet et igraph) non compatibles : utiliser l'un ou l'autre Pour démarrer une session : rm(list=ls()) # vider l'espace de travail library(statnet) # charger le package ou rm(list=ls()) # vider l'espace de travail library(igraph) # charger le package
  • 4. Analyse de réseaux avec R Visualiser un jeu de données rm(list=ls()) library(statnet) gplot(rgraph(10, tprob=0.2)) #random graph, 10 sommets #proba 20% library(igraph) plot(erdos.renyi.game(10, 1/5))
  • 5. Analyse de réseaux avec R Mesures de base statnet igraph densité gden graph.density comp. connexes components clusters degré degree degree betweenness betweenness betweenness closeness closeness closeness PCC* geodist shortest.paths cliques clique.census cliques k-cores kcores graph.coreness *PCC : plus court chemin
  • 6. Analyse de réseaux avec R Saisir les données : éditeur de texte (Notepad++), format .txt ou .csv Importer des données #liste de liens : origine, destination, attributs library(statnet) d - read.table(data.csv, header=TRUE, sep=;) g - as.network(as.matrix(d)) g library(igraph) g - graph.data.frame(d) g
  • 7. Analyse de réseaux avec R Importer des attributs pour les sommets (avec igraph) Une liste de liens origine - destination - attribut 1 - attribut 2, etc. Une liste de sommets - attribut 1 - attribut 2, etc rm(list=ls()) liens - read.table(liens.csv, header=TRUE, sep=;) g - graph.data.frame(liens) sommets - read.table(sommets.csv, header=TRUE, sep=;) V(g)$Att=sommets$A[match(V(g)$name,sommets$S)] # S = code des sommets, A = attribut des sommes #variation taille selon attribut plot(g, vertex.size = as.numeric(V(g)$Att)*10)
  • 8. Analyse de réseaux avec R Idem avec statnet rm(list=ls()) library(statnet) d - read.table(liens.csv, header=TRUE, sep=;) str(d) da - read.table(sommets.csv, header=TRUE, sep=;) str(d) g - as.network(as.matrix(d[,-3])) g g %v% AGE - da$A gplot(g, gmode=graph, displaylabels=TRUE, vertex.cex= da$A)
  • 9. Analyse de réseaux avec R Graphe biparti (pas de mesure possible - statnet - ou résultats faux - igraph) rm(list=ls()) library(igraph) d - read.table(biparti.csv, sep=;, header=FALSE) g - graph.data.frame(d, directed = FALSE) g library(statnet) g - as.network(as.matrix(d), bipartite = TRUE) g
  • 10. Analyse de réseaux avec R Extraire et visualiser les ego-networks library(statnet) ego - ego.extract(g) gplot(ego$a, displaylabels=TRUE, labels=colnames(ego$a), gmode=graph)
  • 11. Analyse de réseaux avec R Soit le graphe suivant : I quel est le diamètre du graphe ? I combien y-a-t'il de cliques avec 3 sommets ? avec 4 ? I quels sont les sommets les plus centraux ? en terme de degré ? en terme d'intermédiarité ?
  • 12. Exercice 1 I créer le chier de liens correspondant à cette gure (format conseillé .csv) ; I l'importer dans R ; I le transformer en objet igraph ou network ; I chercher les cliques ; I mesurer le diamètre, le degré, l'intermédiarité.
  • 13. Analyse de réseaux avec R Avec statnet et/ou igraph, visualiser en faisant apparaître les attributs des sommets (couleur), le degré (taille) et l'intensité des liens (épaisseur). Exemples statnet igraph
  • 14. Analyse de réseaux avec R Structure des données exoliens.csv exosommets.csv O;D;I code;attribut a;b;3 a;1 a;c;2 b;1 a;d;1 c;1 ... d;2 ... Si vous changez les noms de colonnes, il faudra adapter le code donné ensuite Et il y aura la solution ensuite. . .
  • 15. rm(list=ls()) library(igraph) #import des fichiers liens et sommets lien - read.table(exoliens.csv, sep=;, header=TRUE) somm - read.table(exosommets.csv, sep=;, header=TRUE) #transformation en objet igraph #import de l'attribut des sommets g - graph.data.frame(lien, directed= FALSE) V(g)$Att -somm$attribut[match(V(g)$name,somm$code)] #mesures graph.density(g) degree(g) betweenness(g) max(shortest.paths(g)) cliques(g, min = 3)
  • 16. #visualisation colors = c(Red,Yellow) V(g)$Att[V(g)$Att == 1] = colors[1] V(g)$Att[V(g)$Att == 2] = colors[2] edgeW - get.edge.attribute(g, I) #ouverture fenetre graphique X11() plot(g, vertex.size = degree(g)*10, vertex.color= V(g)$Att, edge.width = edgeW*2, edge.color = Black)
  • 17. detach(package:igraph) library(statnet) g - as.network(as.matrix(lien[,-3]), directed = FALSE) g gden(g) betweenness(g) geodist(g) clique.census(g, mode=graph) X11() gplot(g, gmode = graph, displaylabels=TRUE, vertex.cex= sqrt(degree(g)), vertex.col = somm$attribut, edge.lwd = lien$I)