LoslegenKostenlos loslegen

Betweenness

Ein weiteres Maß für die Bedeutung eines bestimmten Knotens ist seine Betweenness. Sie gibt an, wie häufig der Knoten auf kürzesten Pfaden zwischen zwei beliebigen Knoten im Netzwerk liegt. Man kann sie als Maß dafür verstehen, wie kritisch der Knoten für den Informationsfluss im Netzwerk ist. Personen mit hoher Betweenness sind zentrale Brücken zwischen verschiedenen Teilen eines Netzwerks. In unserem Masern-Übertragungsnetz sind Knoten mit hoher Betweenness jene Kinder, die maßgeblich zur Weitergabe der Krankheit in andere Teile des Netzwerks beigetragen haben. In dieser Übung ermittelst du den Betweenness-Wert für jeden Knoten und erstellst anschließend eine neue Visualisierung des Netzwerks, in der die Knotengröße anhand des Betweenness-Werts angepasst wird, um diese Schlüssel-Knoten hervorzuheben.

Diese Übung ist Teil des Kurses

Netzwerkanalyse mit R

Kurs anzeigen

Anleitung zur Übung

  • Berechne die Betweenness jedes Knotens mit der Funktion betweenness() auf dem Graph-Objekt g. Achte darauf, dass die Werte für ein gerichtetes Netzwerk berechnet werden. Weise das Ergebnis dieser Funktion als g.b zu.
  • Untersuche die Verteilung der Betweenness-Werte visuell mit der Funktion hist().
  • Erzeuge mit plot() eine Visualisierung des Netzwerks basierend auf den Betweenness-Werten. Die Knotenbeschriftungen sollen NA sein, damit sie nicht angezeigt werden. Das Attribut für die Knotengröße soll eins plus die Quadratwurzel der Betweenness-Werte im Objekt g.b sein. Angesichts der großen Unterschiede der Betweenness-Werte in diesem Netzwerk stellt diese Normalisierung sicher, dass alle Knoten sichtbar sind und ihre relative Bedeutung dennoch erkennbar bleibt.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

library(igraph)

# Calculate betweenness of each vertex
g.b <- ___(g, directed = ___)

# Show histogram of vertex betweenness
___(___, breaks = 80)

# Create plot with vertex size determined by betweenness score
___(g, 
     vertex.label = ___,
     edge.color = 'black',
     vertex.size = sqrt(___)+1,
     edge.arrow.size = 0.05,
     layout = layout_nicely(g))
Code bearbeiten und ausführen