网络的平均聚类系数(igraph)

abu*_*abu 6 r social-networking 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)
Run Code Online (Sandbox Code Playgroud)

我将不胜感激。

Jul*_*ora 7

使用transitivity(graph)计算全局聚类系数(传递性):

这只是图中三角形和相连的三元组的比率。对于有向图,将忽略边缘的方向。

同时,transitivity(graph, type = "average")作为平均值,transitivity(graph, type = "local")首先计算局部聚类系数,然后对其平均:

无向图的局部传递性,是针对vids参数中给定的每个顶点计算的。顶点的局部可传递性是连接到顶点的三角形与以顶点为中心的三元组之比。对于有向图,将忽略边缘的方向。

见,例如,?transitivity聚类系数

因此,首先它们都是有效的措施,选择应取决于您的目的。它们之间的区别非常明显(请参阅维基百科页面):

值得注意的是,该度量对低度节点具有更大的权重,而传递比对高度节点具有更大的权重。实际上,每个局部聚类得分由k_i(k_i-1)加权的加权平均值与全局聚类系数相同

其中K_I是顶点的数量的邻居。因此,也许同时使用它们两个也是很公平的。