Visualizando nós e arestas importantes
Um problema com o conjunto de dados de sarampo é que há três indivíduos para os quais não se sabe quem os infectou. Um desses indivíduos (vértice 184) parece ser, no fim das contas, responsável por disseminar a doença para muitos outros, mesmo sem ter infectado diretamente tantas pessoas. Porém, como o vértice 184 não tem aresta de entrada na rede, ele aparenta ter baixa intermediação (betweenness). Uma forma de explorar a importância desse vértice é visualizar as distâncias geodésicas das conexões que saem desse indivíduo. Neste exercício, você vai criar um gráfico dessas distâncias a partir desse paciente zero.
Este exercício faz parte do curso
Network Analysis in R
Instruções do exercício
- Use
make_ego_graph()para criar um subconjunto da nossa rede composto pelos vértices conectados ao vértice 184. O primeiro argumento é o grafo originalg. O segundo argumento é o número máximo de conexões que qualquer vértice precisa ter até o nosso vértice de interesse. Neste caso, podemos usardiameter()para retornar o comprimento do caminho mais longo na rede. O terceiro argumento é o nosso vértice de interesse, que deve ser 184. O último argumento é o mode. Nesta situação, você pode incluir todas as conexões, independentemente da direção. - Crie um objeto
distsque contenha a distância geodésica de cada vértice em relação ao vértice 184. Use a funçãodistances()para calcular isso. - Atribua o atributo
colora cada vértice. Cada cor será escolhida com base em sua distância geodésica. A paleta de corescolorstem comprimento igual à distância geodésica máxima mais um. Isso garante que vértices à mesma distância sejam plotados na mesma cor e que o paciente zero também tenha sua própria cor. - Use
plot()para visualizar a redeg184. O rótulo dos vértices deve ser as distâncias geodésicasdists.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Make an ego graph
g184 <- ___(g, ___(g), nodes = '184', mode = c("all"))[[1]]
# Get a vector of geodesic distances of all vertices from vertex 184
dists <- ___(g184, "184")
# Create a color palette of length equal to the maximal geodesic distance plus one.
colors <- c("black", "red", "orange", "blue", "dodgerblue", "cyan")
# Set color attribute to vertices of network g184.
V(___)$color <- colors[dists+1]
# Visualize the network based on geodesic distance from vertex 184 (patient zero).
___(___,
vertex.label = ___,
vertex.label.color = "white",
vertex.label.cex = .6,
edge.color = 'black',
vertex.size = 7,
edge.arrow.size = .05,
main = "Geodesic Distances from Patient Zero"
)