始める無料で始める

媒介中心性(Betweenness)

各頂点の重要性を測るもう一つの指標が、媒介中心性(betweenness)です。これは、ネットワーク内の任意の2頂点間の最短経路上に、その頂点がどれだけ頻繁に現れるかを表す指数です。ネットワーク内で情報が流れる際に、その頂点がどれだけ重要な役割を果たすかと捉えることができます。媒介中心性が高い個体は、ネットワークの異なる部分をつなぐ重要な橋渡し役です。はしかの感染ネットワークでは、媒介中心性が高い頂点は、ネットワーク内の他の部分へ病気を伝播させるうえで中心的だった子どもたちを指します。この演習では、各頂点の媒介中心性スコアを求め、そのスコアに応じて頂点サイズを調整した新しいネットワーク図を作成し、重要な頂点を強調します。

この演習はコースの一部です

Rで学ぶネットワーク分析

コースを見る

演習の手順

  • グラフオブジェクト g に対して関数 betweenness() を用い、各頂点の媒介中心性を計算します。ネットワークが有向であることを考慮してスコアを計算してください。関数の結果は g.b として代入します。
  • 関数 hist() を使って、媒介中心性スコアの分布を視覚的に確認します。
  • plot() を使って、媒介中心性スコアに基づくネットワーク図を作成します。頂点ラベルは表示しないように NA に設定します。頂点サイズ属性は、オブジェクト g.b にある媒介中心性スコアの平方根に 1 を加えた値にします。このネットワークでは媒介中心性に大きな偏りがあるため、このように正規化することで、すべてのノードを見やすくしつつ、相対的な重要度も判別できるようにします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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))
コードを編集して実行