Aan de slagGa gratis aan de slag

Belangrijke knopen en randen visualiseren

Een probleem met de mazelengegevensset is dat er drie personen zijn van wie niet bekend is wie hen heeft besmet. Een van deze personen (knoop 184) lijkt uiteindelijk verantwoordelijk voor het verspreiden van de ziekte naar veel anderen, ook al hebben ze zelf niet heel veel personen direct besmet. Omdat knoop 184 echter geen inkomende rand in het netwerk heeft, lijkt de tussenliggendheid (betweenness) laag. Een manier om het belang van deze knoop te onderzoeken is door de geodetische afstanden van de verbindingen die vanuit deze persoon vertrekken te visualiseren. In deze oefening maak je een plot van deze afstanden vanaf deze patient zero.

Deze oefening maakt deel uit van de cursus

Netwerkanalyse in R

Cursus bekijken

Oefeninstructies

  • Gebruik make_ego_graph() om een subset van ons netwerk te maken met de knopen die verbonden zijn met knoop 184. Het eerste argument is de oorspronkelijke graaf g. Het tweede argument is het maximale aantal verbindingen dat een knoop nodig heeft om verbonden te zijn met onze doelknoop. In dit geval kun je diameter() gebruiken om de lengte van het langste pad in het netwerk te bepalen. Het derde argument is onze doelknoop, dat moet 184 zijn. Het laatste argument is de modus. In dit geval kun je alle verbindingen meenemen, ongeacht de richting.
  • Maak een object dists dat de geodetische afstand van elke knoop tot knoop 184 bevat. Gebruik de functie distances() om dit te berekenen.
  • Ken het attribuut color toe aan elke knoop. Elke kleur wordt gekozen op basis van de geodetische afstand. Het kleurenpalet colors heeft een lengte gelijk aan de maximale geodetische afstand plus één. Zo worden knopen op dezelfde afstand in dezelfde kleur geplot en heeft patient zero ook een eigen kleur.
  • Gebruik plot() om het netwerk g184 te visualiseren. Het knoopliveau moet de geodetische afstanden dists zijn.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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"
     )
Code bewerken en uitvoeren