ComeçarComece de graça

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

Ver curso

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 original g. 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 usar diameter() 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 dists que contenha a distância geodésica de cada vértice em relação ao vértice 184. Use a função distances() para calcular isso.
  • Atribua o atributo color a cada vértice. Cada cor será escolhida com base em sua distância geodésica. A paleta de cores colors tem 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 rede g184. O rótulo dos vértices deve ser as distâncias geodésicas dists.

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"
     )
Editar e executar o código