Este tutorial visa esclarecer como realizar alguns passos da análise de redes sociais usando o ambiente R.
Primeiro, carregamos os pacotes sand que contém os bancos de dados que usaremos e igraph usado para análises. O pacote sand carrega automaticamente o pacote igraph e, por isso, não precisamos chamá-lo novamente. Se houver um erro indicando que o pacote não está instalado, digite o código
install.packages("sand")
library(sand)
Vamos começar a trabalhar com algumas visualizações da rede de associações de advogados em New England (LAZEGA, 2001). Para conhecer melhor os dados digite o código
help(lazega)
Primeiro, vamos atualizar os dados para que a nova versão do igraph não fique colocando warnings desnecessários. Depois, vamos gerar 3 visualizações, a primeira com um layout default, a segunda com um layout Kamada Kawai e a terceira com um layout Fruchterman-Reingold. Usaremos também o comando vertex.label=NA para especificar que não queremos imprimir labels nos vértices da rede e vertex.size para especificar o tamanho dos vértices.
lazega <- upgrade_graph(lazega)
plot(lazega, vertex.label=NA)
plot(lazega, layout=layout_with_kk(lazega), vertex.label=NA, vertex.size=10)
plot(lazega, layout=layout_with_fr(lazega), vertex.label=NA, vertex.size=8)
Às vezes é necessário investigar os arcos existentes no grafo. Para isso use o comando
E(lazega)
## + 115/115 edges (vertex names):
## [1] V1 --V17 V2 --V7 V2 --V16 V2 --V17 V2 --V22 V2 --V26 V2 --V29
## [8] V3 --V18 V3 --V25 V3 --V28 V4 --V12 V4 --V17 V4 --V19 V4 --V20
## [15] V4 --V22 V4 --V26 V4 --V28 V4 --V29 V4 --V31 V5 --V18 V5 --V24
## [22] V5 --V28 V5 --V31 V5 --V32 V5 --V33 V6 --V24 V6 --V28 V6 --V30
## [29] V6 --V31 V6 --V32 V7 --V18 V9 --V12 V9 --V16 V9 --V29 V10--V24
## [36] V10--V26 V10--V29 V10--V31 V10--V34 V11--V17 V12--V15 V12--V16
## [43] V12--V17 V12--V19 V12--V26 V12--V29 V12--V34 V13--V31 V13--V33
## [50] V14--V16 V14--V17 V14--V25 V14--V28 V14--V30 V14--V32 V15--V16
## [57] V15--V19 V15--V20 V15--V22 V15--V24 V15--V26 V15--V29 V15--V32
## [64] V15--V35 V15--V36 V16--V17 V16--V22 V16--V26 V16--V27 V16--V29
## + ... omitted several edges
Para obter a matriz de adjacências, use
get.adjacency(lazega)
## 36 x 36 sparse Matrix of class "dgCMatrix"
## [[ suppressing 36 column names 'V1', 'V2', 'V3' ... ]]
##
## V1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . .
## V2 . . . . . . 1 . . . . . . . . 1 1 . . . . 1 . . . 1 . . 1 . . . . . . .
## V3 . . . . . . . . . . . . . . . . . 1 . . . . . . 1 . . 1 . . . . . . . .
## V4 . . . . . . . . . . . 1 . . . . 1 . 1 1 . 1 . . . 1 . 1 1 . 1 . . . . .
## V5 . . . . . . . . . . . . . . . . . 1 . . . . . 1 . . . 1 . . 1 1 1 . . .
## V6 . . . . . . . . . . . . . . . . . . . . . . . 1 . . . 1 . 1 1 1 . . . .
## V7 . 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . .
## V8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
## V9 . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 . . . . . . .
## V10 . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . 1 . 1 . . 1 . .
## V11 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . .
## V12 . . . 1 . . . . 1 . . . . . 1 1 1 . 1 . . . . . . 1 . . 1 . . . . 1 . .
## V13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . .
## V14 . . . . . . . . . . . . . . . 1 1 . . . . . . . 1 . . 1 . 1 . 1 . . . .
## V15 . . . . . . . . . . . 1 . . . 1 . . 1 1 . 1 . 1 . 1 . . 1 . . 1 . . 1 1
## V16 . 1 . . . . . . 1 . . 1 . 1 1 . 1 . . . . 1 . . . 1 1 . 1 . . 1 . 1 . 1
## V17 1 1 . 1 . . . . . . 1 1 . 1 . 1 . . 1 . . 1 . 1 1 1 . 1 1 . . . . 1 . .
## V18 . . 1 . 1 . 1 . . . . . . . . . . . . . . . . . . . . 1 . . 1 1 1 . 1 .
## V19 . . . 1 . . . . . . . 1 . . 1 . 1 . . . . 1 . 1 . 1 . 1 . . . . . 1 1 .
## V20 . . . 1 . . . . . . . . . . 1 . . . . . . 1 . . . 1 . . . . . . . . . .
## V21 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . .
## V22 . 1 . 1 . . . . . . . . . . 1 1 1 . 1 1 . . . . . . . . . . 1 1 . . . .
## V23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
## V24 . . . . 1 1 . . . 1 . . . . 1 . 1 . 1 . . . . . . 1 . . . . 1 . . . . 1
## V25 . . 1 . . . . . . . . . . 1 . . 1 . . . . . . . . . . 1 . . . . . . 1 .
## V26 . 1 . 1 . . . . . 1 . 1 . . 1 1 1 . 1 1 . . . 1 . . 1 . . . . 1 . . . .
## V27 . . . . . . . . . . . . . . . 1 . . . . 1 . . . . 1 . . . . . . . . . .
## V28 . . 1 1 1 1 . . . . . . . 1 . . 1 1 1 . . . . . 1 . . . . 1 1 1 . . 1 .
## V29 . 1 . 1 . . . . 1 1 . 1 . . 1 1 1 . . . . . . . . . . . . . . . . 1 . .
## V30 . . . . . 1 . . . . . . . 1 . . . . . . . . . . . . . 1 . . 1 . . . . .
## V31 . . . 1 1 1 . . . 1 . . 1 . . . . 1 . . . 1 . 1 . . . 1 . 1 . 1 1 . 1 .
## V32 . . . . 1 1 . . . . . . . 1 1 1 . 1 . . . 1 . . . 1 . 1 . . 1 . 1 . 1 .
## V33 . . . . 1 . . . . . . . 1 . . . . 1 . . . . . . . . . . . . 1 1 . . . .
## V34 . . . . . . . . . 1 . 1 . . . 1 1 . 1 . . . . . . . . . 1 . . . . . . .
## V35 . . . . . . . . . . . . . . 1 . . 1 1 . . . . . 1 . . 1 . . 1 1 . . . .
## V36 . . . . . . . . . . . . . . 1 1 . . . . . . . 1 . . . . . . . . . . . .
Medidas Descritivas
Agora, vamos obter algumas medidas descritivas da rede. Para obtermos a distribuição de grau faça
grau <- degree(lazega)
hist(grau)
grau
## V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18
## 1 6 3 9 6 5 2 0 3 5 1 9 2 6 11 13 15 8
## V19 V20 V21 V22 V23 V24 V25 V26 V27 V28 V29 V30 V31 V32 V33 V34 V35 V36
## 10 4 1 9 0 9 5 12 3 13 9 4 13 12 5 6 7 3
summary(grau)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 3.000 6.000 6.389 9.000 15.000
Para investigar a distribuição de grau, podemos usar
dist.grau <- degree.distribution(lazega)
d <- 1:max(grau)-1
ind <- grau !=0
plot(d[ind], dist.grau[ind], log="xy", pch=19,
xlab=c("Log-Degree"), ylab=c("Log-Intensity"), main="Log-Log Degree Distribution")
## Warning in xy.coords(x, y, xlabel, ylabel, log): 1 x value <= 0 omitted
## from logarithmic plot
## Warning in xy.coords(x, y, xlabel, ylabel, log): 1 y value <= 0 omitted
## from logarithmic plot
legend("bottomleft", "Distribuição de grau na escala log-log")
Referências
KOLACZYK, Eric D.; CSARDI, Gabor. Statistical analysis of network data with R. New York, NY: Springer, 2014.
LAZEGA, Emmanuel. The Collegial Phenomenon: The Social Mechanisms of Cooperation Among Peers in a Corporate Law Partnership. Oxford: Oxford University Press, 2001.