[R][ネットワーク分析] ネットワークにおいてどれくらい中心的かの指標

ネットワーク分析で最も良く用いられる指標として、中心性というものがある
今回は、その中でも3つの指標に絞って紹介

次数中心性

友達が多い人が高く評価される指標
友達の数を数えるだけなので、計算も簡単

  • データの入力と描画
A <- matrix(c(
  0,1,1,1,1,1,1,0,
  1,0,1,1,1,1,0,0,
  1,1,0,0,0,0,0,1,
  1,1,0,0,0,0,1,0,
  1,1,0,0,0,1,0,0,
  1,1,0,0,1,0,0,0,
  1,0,0,1,0,0,0,0,
  0,0,1,0,0,0,0,0),
  nrow = 8, byrow = TRUE)

g <- graph.adjacency(A, mode = "undirected")
plot(g)

http://gyazo.com/7a94eca98f84abc4fe76969e4ea49337.png

  • 次数中心性の算出
> degree(g)
[1] 6 5 3 3 3 3 2 1

PageRank

単純に友達が多いだけではなく、その友達の友達の数も考慮した指標
たくさん友達はいるんだけど、自分以外の友達がいない人とばかりつながっている人と、同じ数の友達がいて、その友達にもまたたくさん友達がいる人とでは、やっぱり後者の方が重要だと考えられる

  • データの入力と描画
A <- matrix(c(
  0,0,0,0,0,0,0,0,0,
  1,0,0,0,0,0,0,0,0,
  1,0,0,0,0,0,0,0,0,
  0,1,1,0,0,0,0,0,0,
  1,0,0,0,0,0,0,0,0,
  0,0,0,0,0,0,0,0,0,
  0,0,0,0,0,1,0,0,0,
  0,0,0,0,0,1,0,0,0,
  0,0,0,0,0,1,0,0,0),
  nrow = 9, byrow = TRUE)

g <- graph.adjacency(A, mode = "directed")
plot(g,edge.arrow.size=.1)

http://gyazo.com/e71f646425770f07e1ef0e976d6f8204.png

  • Page Rankの算出
> page.rank(g, directed = TRUE)$vector
[1] 0.40153809 0.07480774 0.07480774 0.03799515 0.03799515 0.25887070 0.03799515 0.03799515
[9] 0.03799515
    • 0番と5番の人は、同じ次数だが0番の人の方がスコアが高くなっている

媒介中心性

その人がいないと情報が伝わらなかったり、おそくなったりするような位置の人を重要とする指標
複数のコミュニティに所属してるような人が該当する (その人がいないと、コミュニティ間のつながりが薄くなるような人)

  • データの入力と描画
A <- matrix(c(
  0,1,1,1,1,1,1,0,
  1,0,1,1,1,1,0,0,
  1,1,0,0,0,0,0,1,
  1,1,0,0,0,0,1,0,
  1,1,0,0,0,1,0,0,
  1,1,0,0,1,0,0,0,
  1,0,0,1,0,0,0,0,
  0,0,1,0,0,0,0,0),
  nrow = 8, byrow = TRUE)

g <- graph.adjacency(A, mode = "undirected")
plot(g)

http://gyazo.com/43c702f6576766beb672ce8e49a59e62.png

  • 媒介中心性の算出
> betweenness(g)
[1] 8.5 4.0 6.0 0.5 0.0 0.0 0.0 0.0