practical statistical network analysis (with r and igraph)
TRANSCRIPT
![Page 1: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/1.jpg)
Practical statistical network analysis(with R and igraph)
Gabor [email protected]
Department of Biophysics, KFKI Research Institute for Nuclear and Particle Physics of the
Hungarian Academy of Sciences, Budapest, Hungary
Currently at
Department of Medical Genetics,
University of Lausanne, Lausanne, Switzerland
![Page 2: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/2.jpg)
What is a network (or graph)?
Practical statistical network analysis – WU Wien 2
![Page 3: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/3.jpg)
What is a network (or graph)?
Practical statistical network analysis – WU Wien 3
![Page 4: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/4.jpg)
What is a network (or graph)?
Practical statistical network analysis – WU Wien 4
![Page 5: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/5.jpg)
What is a graph?
• Binary relation (=edges) between elements of a set (=vertices).
![Page 6: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/6.jpg)
What is a graph?
• Binary relation (=edges) between elements of a set (=vertices).
• E.g.
vertices = {A,B, C, D, E}edges = ({A,B}, {A,C}, {B,C}, {C,E}).
![Page 7: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/7.jpg)
What is a graph?
• Binary relation (=edges) between elements of a set (=vertices).
• E.g.
vertices = {A,B, C, D, E}edges = ({A,B}, {A,C}, {B,C}, {C,E}).
• It is“better” to draw it:
AB
C
ED
![Page 8: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/8.jpg)
What is a graph?
• Binary relation (=edges) between elements of a set (=vertices).
• E.g.
vertices = {A,B, C, D, E}edges = ({A,B}, {A,C}, {B,C}, {C,E}).
• It is“better” to draw it:
AB
C
ED
A
B
C
E
D
Practical statistical network analysis – WU Wien 5
![Page 9: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/9.jpg)
Undirected and directed graphs
• If the pairs are unordered, then the graph is undirected:
vertices = {A,B, C, D, E}edges = ({A,B}, {A,C}, {B,C}, {C,E}).
A
B
C
E
D
![Page 10: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/10.jpg)
Undirected and directed graphs
• If the pairs are unordered, then the graph is undirected:
vertices = {A,B, C, D, E}edges = ({A,B}, {A,C}, {B,C}, {C,E}).
A
B
C
E
D
• Otherwise it is directed:
vertices = {A,B, C, D, E}edges = ((A,B), (A,C), (B,C), (C,E)).
A
B
C
E
D
Practical statistical network analysis – WU Wien 6
![Page 11: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/11.jpg)
The igraph“package”
• For classic graph theory and network science.• Core functionality is implemented as a C library.• High level interfaces from R and Python.• GNU GPL.• http://igraph.sf.net
Practical statistical network analysis – WU Wien 7
![Page 12: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/12.jpg)
Vertex and edge ids
• Vertices are always numbered from zero (!).• Numbering is continual, form 0 to |V | − 1.
![Page 13: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/13.jpg)
Vertex and edge ids
• Vertices are always numbered from zero (!).• Numbering is continual, form 0 to |V | − 1.• We have to“translate”vertex names to ids:
V = {A,B, C, D, E}E = ((A,B), (A,C), (B,C), (C,E)).
A = 0, B = 1, C = 2, D = 3, E = 4.
![Page 14: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/14.jpg)
Vertex and edge ids
• Vertices are always numbered from zero (!).• Numbering is continual, form 0 to |V | − 1.• We have to“translate”vertex names to ids:
V = {A,B, C, D, E}E = ((A,B), (A,C), (B,C), (C,E)).
A = 0, B = 1, C = 2, D = 3, E = 4.
1 > g <- graph( c(0,1, 0,2, 1,2, 2,4), n=5 )
Practical statistical network analysis – WU Wien 8
![Page 15: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/15.jpg)
Creating igraph graphs
• igraph objects
![Page 16: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/16.jpg)
Creating igraph graphs
• igraph objects• print(), summary(), is.igraph()
![Page 17: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/17.jpg)
Creating igraph graphs
• igraph objects• print(), summary(), is.igraph()• is.directed(), vcount(), ecount()
1 > g <- graph( c(0,1, 0,2, 1,2, 2,4), n=5 )
2 > g
3 Vertices: 5
4 Edges: 4
5 Directed: TRUE
6 Edges:
7
8 [0] 0 -> 1
9 [1] 0 -> 2
10 [2] 1 -> 2
11 [3] 2 -> 4
Practical statistical network analysis – WU Wien 9
![Page 18: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/18.jpg)
Visualization
1 > g <- graph.tree(40, 4)
2 > plot(g)
3 > plot(g, layout=layout.circle)
![Page 19: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/19.jpg)
Visualization
1 > g <- graph.tree(40, 4)
2 > plot(g)
3 > plot(g, layout=layout.circle)
1 # Force directed layouts
2 > plot(g, layout=layout.fruchterman.reingold)
3 > plot(g, layout=layout.graphopt)
4 > plot(g, layout=layout.kamada.kawai)
![Page 20: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/20.jpg)
Visualization
1 > g <- graph.tree(40, 4)
2 > plot(g)
3 > plot(g, layout=layout.circle)
1 # Force directed layouts
2 > plot(g, layout=layout.fruchterman.reingold)
3 > plot(g, layout=layout.graphopt)
4 > plot(g, layout=layout.kamada.kawai)
1 # Interactive
2 > tkplot(g, layout=layout.kamada.kawai)
3 > l <- layout=layout.kamada.kawai(g)
![Page 21: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/21.jpg)
Visualization
1 > g <- graph.tree(40, 4)
2 > plot(g)
3 > plot(g, layout=layout.circle)
1 # Force directed layouts
2 > plot(g, layout=layout.fruchterman.reingold)
3 > plot(g, layout=layout.graphopt)
4 > plot(g, layout=layout.kamada.kawai)
1 # Interactive
2 > tkplot(g, layout=layout.kamada.kawai)
3 > l <- layout=layout.kamada.kawai(g)
1 # 3D
2 > rglplot(g, layout=l)
![Page 22: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/22.jpg)
Visualization
1 > g <- graph.tree(40, 4)
2 > plot(g)
3 > plot(g, layout=layout.circle)
1 # Force directed layouts
2 > plot(g, layout=layout.fruchterman.reingold)
3 > plot(g, layout=layout.graphopt)
4 > plot(g, layout=layout.kamada.kawai)
1 # Interactive
2 > tkplot(g, layout=layout.kamada.kawai)
3 > l <- layout=layout.kamada.kawai(g)
1 # 3D
2 > rglplot(g, layout=l)
1 # Visual properties
2 > plot(g, layout=l, vertex.color="cyan")
Practical statistical network analysis – WU Wien 10
![Page 23: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/23.jpg)
Simple graphs
• igraph can handle multi-graphs:
V = {A,B, C, D, E}E = ((AB), (AB), (AC), (BC), (CE)).
1 > g <- graph( c(0,1,0,1, 0,2, 1,2, 3,4), n=5 )
2 > g
3 Vertices: 5
4 Edges: 5
5 Directed: TRUE
6 Edges:
7
8 [0] 0 -> 1
9 [1] 0 -> 1
10 [2] 0 -> 2
11 [3] 1 -> 2
12 [4] 3 -> 4
Practical statistical network analysis – WU Wien 11
![Page 24: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/24.jpg)
Simple graphs
• igraph can handle loop-edges:
V = {A,B, C, D, E}E = ((AA), (AB), (AC), (BC), (CE)).
1 > g <- graph( c(0,0,0,1, 0,2, 1,2, 3,4), n=5 )
2 > g
3 Vertices: 5
4 Edges: 5
5 Directed: TRUE
6 Edges:
7
8 [0] 0 -> 0
9 [1] 0 -> 1
10 [2] 0 -> 2
11 [3] 1 -> 2
12 [4] 3 -> 4
Practical statistical network analysis – WU Wien 12
![Page 25: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/25.jpg)
Creating (more) igraph graphs
1 el <- scan("lesmis.txt")
2 el <- matrix(el, byrow=TRUE, nc=2)
3 gmis <- graph.edgelist(el, dir=FALSE)
4 summary(gmis)
Practical statistical network analysis – WU Wien 13
![Page 26: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/26.jpg)
Naming vertices
1 V(gmis)$name
2 g <- graph.ring(10)
3 V(g)$name <- sample(letters, vcount(g))
Practical statistical network analysis – WU Wien 14
![Page 27: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/27.jpg)
Creating (more) igraph graphs
1 # A simple undirected graph
2 > g <- graph.formula( Alice-Bob-Cecil-Alice,
3 Daniel-Cecil-Eugene, Cecil-Gordon )
![Page 28: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/28.jpg)
Creating (more) igraph graphs
1 # A simple undirected graph
2 > g <- graph.formula( Alice-Bob-Cecil-Alice,
3 Daniel-Cecil-Eugene, Cecil-Gordon )
1 # Another undirected graph, ":" notation
2 > g2 <- graph.formula( Alice-Bob:Cecil:Daniel,
3 Cecil:Daniel-Eugene:Gordon )
![Page 29: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/29.jpg)
Creating (more) igraph graphs
1 # A simple undirected graph
2 > g <- graph.formula( Alice-Bob-Cecil-Alice,
3 Daniel-Cecil-Eugene, Cecil-Gordon )
1 # Another undirected graph, ":" notation
2 > g2 <- graph.formula( Alice-Bob:Cecil:Daniel,
3 Cecil:Daniel-Eugene:Gordon )
1 # A directed graph
2 > g3 <- graph.formula( Alice +-+ Bob --+ Cecil
3 +-- Daniel, Eugene --+ Gordon:Helen )
![Page 30: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/30.jpg)
Creating (more) igraph graphs
1 # A simple undirected graph
2 > g <- graph.formula( Alice-Bob-Cecil-Alice,
3 Daniel-Cecil-Eugene, Cecil-Gordon )
1 # Another undirected graph, ":" notation
2 > g2 <- graph.formula( Alice-Bob:Cecil:Daniel,
3 Cecil:Daniel-Eugene:Gordon )
1 # A directed graph
2 > g3 <- graph.formula( Alice +-+ Bob --+ Cecil
3 +-- Daniel, Eugene --+ Gordon:Helen )
1 # A graph with isolate vertices
2 > g4 <- graph.formula( Alice -- Bob -- Daniel,
3 Cecil:Gordon, Helen )
![Page 31: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/31.jpg)
Creating (more) igraph graphs
1 # A simple undirected graph
2 > g <- graph.formula( Alice-Bob-Cecil-Alice,
3 Daniel-Cecil-Eugene, Cecil-Gordon )
1 # Another undirected graph, ":" notation
2 > g2 <- graph.formula( Alice-Bob:Cecil:Daniel,
3 Cecil:Daniel-Eugene:Gordon )
1 # A directed graph
2 > g3 <- graph.formula( Alice +-+ Bob --+ Cecil
3 +-- Daniel, Eugene --+ Gordon:Helen )
1 # A graph with isolate vertices
2 > g4 <- graph.formula( Alice -- Bob -- Daniel,
3 Cecil:Gordon, Helen )
1 # "Arrows" can be arbitrarily long
2 > g5 <- graph.formula( Alice +---------+ Bob )
Practical statistical network analysis – WU Wien 15
![Page 32: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/32.jpg)
Vertex/Edge sets, attributes
• Assigning attributes:set/get.graph/vertex/edge.attribute.
![Page 33: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/33.jpg)
Vertex/Edge sets, attributes
• Assigning attributes:set/get.graph/vertex/edge.attribute.
• V(g) and E(g).
![Page 34: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/34.jpg)
Vertex/Edge sets, attributes
• Assigning attributes:set/get.graph/vertex/edge.attribute.
• V(g) and E(g).• Smart indexing, e.g.V(g)[color=="white"]
![Page 35: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/35.jpg)
Vertex/Edge sets, attributes
• Assigning attributes:set/get.graph/vertex/edge.attribute.
• V(g) and E(g).• Smart indexing, e.g.V(g)[color=="white"]
• Easy access of attributes:
1 > g <- erdos.renyi.game(100, 1/100)
2 > V(g)$color <- sample( c("red", "black"),
3 vcount(g), rep=TRUE)
4 > E(g)$color <- "grey"
5 > red <- V(g)[ color == "red" ]
6 > bl <- V(g)[ color == "black" ]
7 > E(g)[ red %--% red ]$color <- "red"
8 > E(g)[ bl %--% bl ]$color <- "black"
9 > plot(g, vertex.size=5, layout=
10 layout.fruchterman.reingold)
Practical statistical network analysis – WU Wien 16
![Page 36: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/36.jpg)
Creating (even) more graphs
• E.g. from .csv files.
1 > traits <- read.csv("traits.csv", head=F)
2 > relations <- read.csv("relations.csv", head=F)
3 > orgnet <- graph.data.frame(relations)
4
5 > traits[,1] <- sapply(strsplit(as.character
6 (traits[,1]), split=" "), "[[", 1)
7 > idx <- match(V(orgnet)$name, traits[,1])
8 > V(orgnet)$gender <- as.character(traits[,3][idx])
9 > V(orgnet)$age <- traits[,2][idx]
10
11 > igraph.par("print.vertex.attributes", TRUE)
12 > orgnet
Practical statistical network analysis – WU Wien 17
![Page 37: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/37.jpg)
Creating (even) more graphs
• From the web, e.g. Pajek files.
1 > karate <- read.graph("http://cneurocvs.rmki.kfki.hu/igraph/karate.net",
2 format="pajek")
3 > summary(karate)
4 Vertices: 34
5 Edges: 78
6 Directed: FALSE
7 No graph attributes.
8 No vertex attributes.
9 No edge attributes.
Practical statistical network analysis – WU Wien 18
![Page 38: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/38.jpg)
Graph representation
• There is no best format, everythingdepends on what kind of questionsone wants to ask.
Alice
Bob
Cecil
Diana
Esmeralda
Fabien
Gigi
Helen
Iannis
Jennifer
Practical statistical network analysis – WU Wien 19
![Page 39: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/39.jpg)
Graph representation
• Adjacency matrix. Good forquestions like: is ’Alice’ connectedto ’Bob’?
Alice
Bob
Cecil
Diana
Esmeralda
Fabien
Gigi
Helen
Iannis
Jennifer
Alic
e
Bob
Cecil
Dia
na
Esm
era
lda
Fabie
n
Gig
i
Hele
n
Iannis
Jennifer
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
Practical statistical network analysis – WU Wien 20
![Page 40: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/40.jpg)
Graph representation
• Edge list. Not really good foranything.
Alice
Bob
Cecil
Alice
Diana
Cecil
Esmeralda
Bob
Cecil
Diana
Alice
Bob
Diana
Esmeralda
Fabien
Gigi
Diana
Esmeralda
Alice
Helen
Bob
Diana
Diana
Esmeralda
Esmeralda
Fabien
Fabien
Gigi
Gigi
Gigi
Helen
Helen
Helen
Helen
Helen
Helen
Iannis
Iannis
Jennifer
Jennifer
Practical statistical network analysis – WU Wien 21
![Page 41: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/41.jpg)
Graph representation
• Adjacency lists. GQ: who are theneighbors of ’Alice’?
Alice
Bob
Cecil
Diana
Esmeralda
Fabien
Gigi
Helen
Iannis
Jennifer
Bob, Esmeralda, Helen, JenniferBob, Esmeralda, Helen, JenniferBob, Esmeralda, Helen, JenniferBob, Esmeralda, Helen, Jennifer
Alice, Diana, Gigi, HelenAlice, Diana, Gigi, HelenAlice, Diana, Gigi, HelenAlice, Diana, Gigi, Helen
Diana, Fabien, GigiDiana, Fabien, GigiDiana, Fabien, Gigi
Bob, Cecil, Esmeralda, Gigi, Helen, IannisBob, Cecil, Esmeralda, Gigi, Helen, IannisBob, Cecil, Esmeralda, Gigi, Helen, IannisBob, Cecil, Esmeralda, Gigi, Helen, IannisBob, Cecil, Esmeralda, Gigi, Helen, IannisBob, Cecil, Esmeralda, Gigi, Helen, Iannis
Alice, Diana, Fabien, Helen, IannisAlice, Diana, Fabien, Helen, IannisAlice, Diana, Fabien, Helen, IannisAlice, Diana, Fabien, Helen, IannisAlice, Diana, Fabien, Helen, Iannis
Cecil, Esmeralda, HelenCecil, Esmeralda, HelenCecil, Esmeralda, Helen
Bob, Cecil, Diana, HelenBob, Cecil, Diana, HelenBob, Cecil, Diana, HelenBob, Cecil, Diana, Helen
Alice, Bob, Diana, Esmeralda, Fabien, Gigi, JenniferAlice, Bob, Diana, Esmeralda, Fabien, Gigi, JenniferAlice, Bob, Diana, Esmeralda, Fabien, Gigi, JenniferAlice, Bob, Diana, Esmeralda, Fabien, Gigi, JenniferAlice, Bob, Diana, Esmeralda, Fabien, Gigi, JenniferAlice, Bob, Diana, Esmeralda, Fabien, Gigi, JenniferAlice, Bob, Diana, Esmeralda, Fabien, Gigi, Jennifer
Diana, EsmeraldaDiana, Esmeralda
Alice, HelenAlice, Helen
Practical statistical network analysis – WU Wien 22
![Page 42: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/42.jpg)
Graph representation
• igraph. Flat data structures,indexed edge lists. Easy to handle,good for many kind of questions.
Practical statistical network analysis – WU Wien 23
![Page 43: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/43.jpg)
Centrality in networks
• degree
Alice4
Bob4
Cecil3
Diana6
Esmeralda5
Fabien3
Gigi4
Helen7
Iannis2
Jennifer2
Practical statistical network analysis – WU Wien 24
![Page 44: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/44.jpg)
Centrality in networks
• closeness
Cv =|V | − 1∑
i 6=v dvi
Alice0.6
Bob0.64
Cecil0.53
Diana0.75
Esmeralda0.69
Fabien0.6
Gigi0.64
Helen0.82
Iannis0.53
Jennifer0.5
Practical statistical network analysis – WU Wien 25
![Page 45: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/45.jpg)
Centrality in networks
• betweenness
Bv =∑
i 6=j,i 6=v,j 6=v
givj/gij
Alice1.67
Bob1.12
Cecil0.83
Diana6.76
Esmeralda4.62
Fabien1.45
Gigi1.45
Helen10.1
Iannis0
Jennifer0
Practical statistical network analysis – WU Wien 26
![Page 46: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/46.jpg)
Centrality in networks
• eigenvector centrality
Ev =1λ
|V |∑i=1
AivEi, Ax = λx
Alice0.63
Bob0.71
Cecil0.46
Diana0.88
Esmeralda0.75
Fabien0.49
Gigi0.68
Helen1
Iannis0.36
Jennifer0.36
Practical statistical network analysis – WU Wien 27
![Page 47: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/47.jpg)
Centrality in networks
• page rank
Ev =1 − d
|V |+ d
|V |∑i=1
AivEi
Alice0.61
Bob0.59
Cecil0.47
Diana0.87
Esmeralda0.74
Fabien0.47
Gigi0.59
Helen1
Iannis0.34
Jennifer0.34
Practical statistical network analysis – WU Wien 28
![Page 48: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/48.jpg)
Community structure in networks
• Organizing things, clustering itemsto see the structure.
M. E. J. Newman, PNAS, 103, 8577–8582
Practical statistical network analysis – WU Wien 29
![Page 49: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/49.jpg)
Community structure in networks
• How to define what is modular?Many proposed definitions, here isa popular one:
Q =1
2|E|∑vw
[Avw−pvw]δ(cv, cw).
![Page 50: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/50.jpg)
Community structure in networks
• How to define what is modular?Many proposed definitions, here isa popular one:
Q =1
2|E|∑vw
[Avw−pvw]δ(cv, cw).
• Random graph null model:
pvw = p =1
|V |(|V | − 1)
![Page 51: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/51.jpg)
Community structure in networks
• How to define what is modular?Many proposed definitions, here isa popular one:
Q =1
2|E|∑vw
[Avw−pvw]δ(cv, cw).
• Random graph null model:
pvw = p =1
|V |(|V | − 1)
• Degree sequence based null model:
pvw =kvkw
2|E|
Practical statistical network analysis – WU Wien 30
![Page 52: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/52.jpg)
Cohesive blocks
(Based on ‘Structural Cohesion and Embeddedness: a Hierarchical Concept of SocialGroups’ by J.Moody and D.White, Americal Sociological Review, 68, 103–127, 2003)
Definition 1: A collectivity is structurally cohesive to the extent that the socialrelations of its members hold it together.
![Page 53: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/53.jpg)
Cohesive blocks
(Based on ‘Structural Cohesion and Embeddedness: a Hierarchical Concept of SocialGroups’ by J.Moody and D.White, Americal Sociological Review, 68, 103–127, 2003)
Definition 1: A collectivity is structurally cohesive to the extent that the socialrelations of its members hold it together.
Definition 2: A group is structurally cohesive to the extent that multipleindependent relational paths among all pairs of members hold it together.
![Page 54: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/54.jpg)
Cohesive blocks
(Based on ‘Structural Cohesion and Embeddedness: a Hierarchical Concept of SocialGroups’ by J.Moody and D.White, Americal Sociological Review, 68, 103–127, 2003)
Definition 1: A collectivity is structurally cohesive to the extent that the socialrelations of its members hold it together.
Definition 2: A group is structurally cohesive to the extent that multipleindependent relational paths among all pairs of members hold it together.
• Vertex-independent paths and vertex connectivity.
![Page 55: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/55.jpg)
Cohesive blocks
(Based on ‘Structural Cohesion and Embeddedness: a Hierarchical Concept of SocialGroups’ by J.Moody and D.White, Americal Sociological Review, 68, 103–127, 2003)
Definition 1: A collectivity is structurally cohesive to the extent that the socialrelations of its members hold it together.
Definition 2: A group is structurally cohesive to the extent that multipleindependent relational paths among all pairs of members hold it together.
• Vertex-independent paths and vertex connectivity.
• Vertex connectivity and network flows.
Practical statistical network analysis – WU Wien 31
![Page 56: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/56.jpg)
Cohesive blocks
Practical statistical network analysis – WU Wien 32
![Page 57: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/57.jpg)
Cohesive blocks
Practical statistical network analysis – WU Wien 33
![Page 58: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/58.jpg)
Rapid prototyping
Weighted transitivity
c(i) =A3
ii
(A1A)ii
![Page 59: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/59.jpg)
Rapid prototyping
Weighted transitivity
c(i) =A3
ii
(A1A)ii
cw(i) =W3
ii
(WWmaxW)ii
![Page 60: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/60.jpg)
Rapid prototyping
Weighted transitivity
c(i) =A3
ii
(A1A)ii
cw(i) =W3
ii
(WWmaxW)ii
1 wtrans <- function(g) {
2 W <- get.adjacency(g, attr="weight")
3 WM <- matrix(max(W), nrow(W), ncol(W))
4 diag(WM) <- 0
5 diag( W %*% W %*% W ) /
6 diag( W %*% WM %*% W)
7 }
Practical statistical network analysis – WU Wien 34
![Page 61: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/61.jpg)
Rapid prototyping
Clique percolation (Palla etal., Nature 435, 814, 2005)
Practical statistical network analysis – WU Wien 35
![Page 62: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/62.jpg)
. . . and the rest
• Cliques and independent vertexsets.
• Network flows.• Motifs, i.e. dyad and triad census.• Random graph generators.• Graph isomorphism.• Vertex similarity measures,
topological sorting, spanningtrees, graph components, K-cores,transitivity or clustering coefficient.
• etc.• C-level: rich data type library.
Practical statistical network analysis – WU Wien 36
![Page 63: Practical statistical network analysis (with R and igraph)](https://reader031.vdocuments.net/reader031/viewer/2022020213/586a1c191a28ab6b518b6d79/html5/thumbnails/63.jpg)
Acknowledgement
Tamas Nepusz
All the people who contributed code, sent bug reports, suggestions
The R project
Hungarian Academy of Sciences
The OSS community in general
Practical statistical network analysis – WU Wien 37