Aan de slagGa gratis aan de slag

Betweenness

Een andere maat voor het belang van een bepaalde knoop is de betweenness. Dit is een index van hoe vaak de knoop op kortste paden ligt tussen willekeurige paren knopen in het netwerk. Je kunt dit zien als hoe cruciaal de knoop is voor de informatiestroom door een netwerk. Personen met een hoge betweenness vormen belangrijke bruggen tussen verschillende delen van een netwerk. In ons mazelen-overdrachtsnetwerk zijn knopen met een hoge betweenness die kinderen die centraal stonden in het doorgeven van de ziekte naar andere delen van het netwerk. In deze oefening bepaal je de betweenness-score voor elke knoop en maak je vervolgens een nieuwe plot van het netwerk, waarbij je de knoopgrootte aanpast op basis van de betweenness-score om deze sleutelknopen te benadrukken.

Deze oefening maakt deel uit van de cursus

Netwerkanalyse in R

Cursus bekijken

Oefeninstructies

  • Bereken de betweenness van elke knoop met de functie betweenness() op het graafobject g. Zorg ervoor dat de scores voor een gericht netwerk worden berekend. Sla de resultaten van deze functie op als g.b.
  • Bekijk de verdeling van de betweenness-scores visueel met de functie hist().
  • Gebruik plot() om een plot van het netwerk te maken op basis van de betweenness-scores. Zet de knooplabels op NA zodat ze niet verschijnen. De knoopgrootte moet gelijk zijn aan één plus de vierkantswortel van de betweenness-scores in object g.b. Gezien het grote verschil in betweenness-scores in dit netwerk zorgt het normaliseren van de scores op deze manier ervoor dat alle knopen zichtbaar zijn, terwijl hun relatieve belang toch herkenbaar blijft.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 bewerken en uitvoeren