Nessa aula aprenderemos algumas medidas de centralidade calculadas pelo pacote igraph. O pacote igraph é um pacote do R voltado para análise de redes em estágio avançado de desenvolvimento. Para instalar o pacote igraph, digite o comando abaixo:
install.packages('igraph')
Carregando o banco de dados:
tabela <- read.csv('base_gta.csv', fileEncoding="WINDOWS-1252",
sep=';', as.is=T)
tabela <- tabela[ tabela$Especie == 'Bovinos', ]
tabela$animais <- tabela$Machos + tabela$Femeas
tabela$data <- as.Date(tabela$Data, format= "%d/%m/%Y")
library(epinemo, quietly = TRUE)
banco <- CreateUniqueIds(tabela, from = 'Codigo_Propriedade_Origem' ,
to = 'Codigo_Propriedade_Destino')
Para efetuar cálculos no pacote igraph, precisamos aprender a criar um objeto dentro deste pacote. O pacote igraph possui um objeto específico para representar uma rede, chamado de graph (em português, grafo). O código abaixo cria um grafo vazio, adiciona as arestas referentas às movimentações no banco de dados, e depois remove todas as arestas (movimentações) repetidas. Ou seja, nesse caso estamos analisado a rede de vizinhos.
library(igraph, quietly = TRUE)
grafo <- make_empty_graph(n = nrow(banco$correspondence), directed=T)
grafo <- add_edges(grafo, edges = as.matrix(banco$movements[,c('From', 'To')]) )
grafo <- simplify(grafo)
Centralidade de intermediação (do inglês, betweenness centrality, ou apenas betweenness) é uma medida de quantos caminhos da rede passam por um determinado nó. Mais especificamente, indica a proporção de geodésicas (distâncias mais curtas entre dois nós na rede) que incluem o nó de referência (Freeman, 1977). Assim, essa métrica indica a importância de um nó em ligar duas regiões distintas da rede. Pode ser calculado de acordo com a equação
\[b_i = \sum_{j,k} \frac{g_{jik}}{g_{jk}},\]
onde \(g_{jk}\) indica o número de geodésicas entre os nós \(j\) e \(k\), e \(g_{jik}\) indica o número dessas geodésicas que passam pelo nó \(i\).
No pacote igraph é calculado da seguinte maneira:
between <- betweenness(graph = grafo)
Centralidade de proximidade (do inglês, closeness centrality, ou apenas closeness) é uma medida de quão perto na rede um nó está de todos os outros nós. Segundo Freeman (1979), a forma mais simples de cálculo dessa medida de centralidade é definida matematicamente como o inverso da somatória das geodésicas entre o nó de referência e os demais da rede,
\[C_i = \frac{1}{\sum_j d_{ij}},\]
onde \(d_{ij}\) é a distância da geodésica do nó i ao j. Caso não exista caminho possível entre os nós \(i\) e \(j\) utiliza-se o número total de nós da rede (Csardi & Nepusz, 2006). Desta forma o closeness assume valores mais altos para aqueles nós que possuam as geodésicas mais curtas entre os demais nós da rede. É possível calcular o closeness de entrada (quanto maior este valor, menos passos são necessários para um nó receber animais dos outros nós da rede) e de saída (quanto maior esse valor, menos passos são necessários para um nó enviar animais para os outros nós da rede).
No pacote igraph calculamos da seguinte maneira:
Closeness de entrada:
closeness_in <- closeness(graph = grafo, mode = 'in' )
Closeness de saída:
closeness_out <- closeness(graph = grafo, mode = 'out' )
Freeman, L. C. A set of measures of centrality based upon betweenness. Sociometry, v. 40, p. 35-41, 1977.
Freeman, L. C. Centrality in social networks conceptual clarification. Social Networks, v. 1, p. 215-239, 1979.
Csardi G, Nepusz T: The igraph software package for complex network research, InterJournal, Complex Systems 1695. 2006. http://igraph.org