2日目:ネットワークの特徴量、Pajekの使い方

NAISTサマーブートキャンプ

ソフトウェア工学講座「社会ネットワーク分析」の実習(2009年8月10-12日)に参加しました。
一日目午前:NAISTソフトウェア設計学講座をちょっと見学してきた
一日目午後:社会ネットワーク分析の基礎



二日目はネットワークの特徴を表す指標のうち代表的なものを理解し、Pajek(ぱやっく)という分析ツールの使い方に慣れました。実習では指標の説明を受けたのちPajekの練習をしたのですが、解説ページもいくつかあるのでここではPajekの使い方を省略します。

平均経路長はネットワークの大きさを表す

平均経路長は「すべてのノード間の最短パス長を平均した値」によって定義されます。ノードがたくさんある(ネットワークが大きい)ほど大きくなりますが、ノード同士のつながりかたにも左右されます。

上のネットワークですと、1-2間が2ステップ、1-3間が1ステップ……という感じで平均が1.4になります。以下のようにノード間が遠いと平均経路長が大きくなります。

平均クラスタリング係数はノードがかたまりになっている度合いを表す

平均クラスタリング係数は「僕の友達XくんとYくんが友達同士である確率」ともいえます。クラスタはノードの三角形のリンクを単位とします。たとえば以下では、2の友達には1と3がいて、1と3も友達同士なので、クラスタリング計数はもっとも大きい1です。

他方で、1には4という友達がいますが、これは1の友達である2とも3ともつながっていません。可能性としては1-2-3、1-2-4、1-3-4の3クラスタがありうるのですが、実際には1-2-3のクラスタしかなく、クラスタリング係数は1/3になります。
このようにあるノードに注目したときのクラスタリング係数を求め、それらを平均したものが平均クラスタリング係数になります。上のネットワークだと(7/3)*(1/4)を計算した値です。

次数分布によって(たとえば)スケールフリー性を発見できる

次数とはあるノードがもつエッジの数です。次数が大きいノードがどれくらいで、小さいノードがどれくらいか、という割合を表すのが次数分布です。たとえば、みんなだいたい同じくらいのつながりをもっているのだな、とか、想像もつかないくらい次数の大きいひとが存在すること(スケールフリー)などの性質を発見できます。

たいした例ではありませんが、こんな感じです。散布図などのグラフにするとわかりやすいです。

密度はネットワークが開放的か閉鎖的かを表す

密度はあるノードを中心にしたネットワーク(エゴセントリックネットワーク)の人間関係を表します。密度が高いと小規模で同質性が高く、信頼感や目的を共有しやすいが、新しい情報や資源の獲得には不向きです。密度が低いと大規模で多様性が高いのですが、合意形成が困難です。密度の分析はコンサルでもよく使われるらしいです。

上の3をエゴとします。密度は、ノード同士のあらゆる組み合わせにおいて、エゴとの間接的関係がいくつあるか(間接的関係の数÷組み合わせ)で求まります。間接的関係とはエゴの友達同士のつながりです(上の1-4、2-5、4-5、4-6、5-6)。エゴと友達のつながりである直接的関係はカウントしないのが一般的らしいです。
この場合、5/(6*5/2)を計算した値が密度です*1。密度はネットワークの大きさでも変化するので、ネットワーク同士を比較するには条件をそろえる必要があります。

中心性はあるノードの位置がどのくらい中心的かを表す

中心性はたとえば以下のようにいくつもの尺度があります。

次数中心性はあるノードがどのくらいハブとしてはたらくかを表す

たくさんのつながりをもつノードはハブとよばれます。向きをもったグラフの場合、入ってくる次数によって人気の高さ、出ていく次数によって情報発信力を分析することもできます。
次数中心性はネットワークの全ノード数-1のうち、あるノードがいくつ次数をもっているか(次数÷{全ノード数-1})で求まります。以下のように3はすべてのノードとつながっているので次数中心性は1になり、6は3,4,5とつながっているので3/(6-1)で0.6になります。

次数中心性はネットワーク全体を考慮しないので局所(local)中心性ともよばれます。

近接性はあるノードが他者の影響を受けやすいかどうかを表す

近接性は、あるノードのほかの全ノードとの最短経路長の総和によって求まります*2。あるノードがほかの全ノードとリンクしている(全ノードについて最短経路長が1である)とき、近接性は最大の1となります。遠いノードがたくさんあると近接性は低くなります。

近接性の分析によって、ネットワーク内の他者から影響を受けにくいノードや、他者に影響を与えやすいノードを探すことができます。次数中心性とは逆に、ネットワーク全体の影響が考慮されるので帯域(global)中心性ともよばれます。実際に使われることは少ないそうです。

媒介性はあるノードが情報や資源の流れにどれだけ関与するかを表す

媒介性は、あるノードがすべてのノード間の最短経路中にいくつ含まれているかによって求まります*3。つまり、情報や資源をもっとも効率的に届けたいときに活躍するノードほど媒介性が高くなります。

二部グラフを用いて所属関係を分析する

二種類のノードが交互につながりあうグラフを二部グラフといいます(たぶん)。たとえば、ひとと組織の所属関係を表すグラフを分析できます。

これを会社と、会社にエントリーする就活生のグラフと考えてみましょう。だれがどんな会社にエントリーしているか、なんとなくわかります。
しかし二部グラフの解析は難しいので、ふつうはノードを一種類にして解析するそうです。たとえば"nanka.com"社と"a"さんと"fuga.co.jp"社の関係を"nanka.com"-"fuga.co.jp"というふうにつなぎ直します。

例が微妙ですね。以下のようにひとのつながりを見るのもおもしろいです。

変換によって見えなくなるものもあるので、目的に応じて変換方法を変える必要があります。

まとめ

代表的な指標を紹介しました。ほかにもいろんな指標とかその亜種があるらしいです。
前回、可視化と定量化がネットワーク分析の武器であると述べました。ネットワークから読み取れる指標を計算しようとたくさんのひとが工夫を試みているのでしょう。
実際の分析は特長量のほかにもネットワーク図や過去の出来事などさまざまなデータを用いて知識をみちびきます。ある側面の特徴を定量化して議論の手がかりにするのが指標の役割で、それだけで結論をみちびけるわけではないことに注意したいです。



Pajekの使い方については公式サイトのドキュメントやそれゆけBioinformatics: Pajek入門 −巨大ネットワーク分析用フリーソフトウェア−が参考になります。検索すればわりと充実したpdfファイルも見つかります。

三日目:バグトラッキング分析、コミュニティ抽出

*1:ノード数をgとしたとき、g(g-1)/2があらゆるノードの組み合わせです。あるノードに注目したとき、それ以外のノードは(g-1)個で、つながりは向きを考慮しないので1/2します。

*2:全ノード数をnとしたとき、理論上最小となる経路長の総和(n-1)を分子に、実際の経路長の総和を分母にした値です。

*3:全ノード数をnとしたとき、自分を除くあらゆるノード間の組み合わせは(n-1)*(n-2)/2です。あるノードが最短経路中に含まれる数を組み合わせで割った値が媒介性です。