Wichtige Knoten und Kanten visualisieren
Ein Problem beim Masern-Datensatz ist, dass es drei Personen gibt, für die nicht bekannt ist, wer sie infiziert hat. Eine dieser Personen (Knoten 184) scheint letztlich dafür verantwortlich zu sein, die Krankheit an viele andere weiterzugeben, obwohl sie nicht direkt sehr viele Personen infiziert hat. Da Knoten 184 jedoch keine eingehende Kante im Netzwerk hat, wirkt die Betweenness gering. Eine Möglichkeit, die Bedeutung dieses Knotens zu untersuchen, ist, die geodätischen Distanzen der von dieser Person ausgehenden Verbindungen zu visualisieren. In dieser Übung erstellst du einen Plot dieser Distanzen von diesem Patient Zero aus.
Diese Übung ist Teil des Kurses
Netzwerkanalyse mit R
Anleitung zur Übung
- Verwende
make_ego_graph(), um einen Teilgraphen unseres Netzwerks zu erstellen, der aus Knoten besteht, die mit Knoten 184 verbunden sind. Das erste Argument ist der ursprüngliche Graphg. Das zweite Argument ist die maximale Anzahl von Verbindungen, die ein Knoten benötigt, um mit unserem interessierenden Knoten verbunden zu sein. In diesem Fall können wirdiameter()verwenden, um die Länge des längsten Pfads im Netzwerk zu erhalten. Das dritte Argument ist unser interessierender Knoten, der 184 sein sollte. Das letzte Argument ist der Modus. Hier kannst du alle Verbindungen unabhängig von der Richtung einschließen. - Erstelle ein Objekt
dists, das die geodätische Distanz jedes Knotens vom Knoten 184 enthält. Verwende dazu die Funktiondistances(). - Weise jedem Knoten das Attribut
colorzu. Jede Farbe wird basierend auf der geodätischen Distanz ausgewählt. Die Farbpalettecolorshat eine Länge, die der maximalen geodätischen Distanz plus eins entspricht. So werden Knoten mit gleicher Distanz in derselben Farbe dargestellt, und Patient Zero hat ebenfalls eine eigene Farbe. - Verwende
plot(), um das Netzwerkg184zu visualisieren. Die Knotenenlabels sollten die geodätischen Distanzendistssein.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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"
)