web-dev-qa-db-ja.com

ネットワークの平均クラスタリング係数(igraph)

グラフの平均クラスタリング係数を計算したい(igraphパッケージから)。ただし、どのアプローチに従うべきかわかりません。

library(igraph)
graph <- erdos.renyi.game(10000, 10000, type = "gnm")

# Global clustering coefficient
transitivity(graph)
# Average clustering coefficient
transitivity(graph, type = "average")
# The same as above
mean(transitivity(graph, type = "local"), na.rm = TRUE)

いくつかのご指導をいただければ幸いです。

6
abu

transitivity(graph)を使用すると、グローバルクラスタリング係数(推移性)が計算されます。

これは、単にグラフ内の三角形と接続されたトリプルの比率です。有向グラフの場合、エッジの方向は無視されます。

一方、transitivity(graph, type = "average")の平均であるtransitivity(graph, type = "local")は、最初にローカルクラスタリング係数を計算し、次にそれらを平均します。

無向グラフのローカル推移性。これは、vids引数で指定された各頂点に対して計算されます。頂点の局所的な推移性は、頂点に接続されている三角形と、頂点を中心とするトリプルの比率です。有向グラフの場合、エッジの方向は無視されます。

たとえば、?transitivityおよび クラスタリング係数 を参照してください。

したがって、最初に両方とも有効な手段であり、選択は目的によって異なります。それらの違いは非常に明確です(ウィキペディアのページを参照):

このメトリックは低次ノードにより多くの重みを置き、推移性比は高次ノードにより多くの重みを置くことに注意する価値があります。実際、各ローカルクラスタリングスコアがk_i(k_i-1)によって重み付けされている加重平均は、グローバルクラスタリング係数と同じです。

ここで、k_iは、隣接する頂点iの数です。したがって、おそらく両方を使用することもかなり公平でしょう。

7
Julius Vainora