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
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 graafg. Het tweede argument is het maximale aantal verbindingen dat een knoop nodig heeft om verbonden te zijn met onze doelknoop. In dit geval kun jediameter()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
distsdat de geodetische afstand van elke knoop tot knoop 184 bevat. Gebruik de functiedistances()om dit te berekenen. - Ken het attribuut
colortoe aan elke knoop. Elke kleur wordt gekozen op basis van de geodetische afstand. Het kleurenpaletcolorsheeft 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 netwerkg184te visualiseren. Het knoopliveau moet de geodetische afstandendistszijn.
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"
)