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

时间:2018-02-18 15:57:42

标签: r igraph social-networking

我想计算图表的平均聚类系数(来自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)

我会感激一些指导。

3 个答案:

答案 0 :(得分:4)

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

  

这只是三角形和连接三元组的比例   图表。对于有向图,边缘的方向将被忽略。

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

  

无向图的局部传递性,这是计算的   vids参数中给出的每个顶点。一个地方的传递性   顶点是连接到顶点和三角形的三角形的比例   以顶点为中心的三元组。对于有向图的方向   边缘被忽略。

请参阅,例如?transitivityClustering coefficient

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

  

值得注意的是,这个指标对低点的重视程度更高   度数节点,而传递率比较重要   高度节点。实际上,每个地方的加权平均值   聚类分数由k_i(k_i-1)加权,与全局聚类相同   系数

其中k_i是顶点 i 邻居的数量。因此,也许使用它们两者也会很公平。

答案 1 :(得分:0)

transitivity(g, type="local") 

输出向量的顺序如何? 是否与以下顺序相同?

degree(g, mode="all")

度向量具有索引,但不具有聚类系数

答案 2 :(得分:0)

@Julius Vainora 回答了这个问题。对于那些试图为 type = "average" 做什么寻找答案的人的附加说明,因为 igraph 文档对此没有任何说明:

transitivity(graph, type = "average")

相同
transitivity(graph, type = "localaverage")

相同
transitivity(graph, type = "localaverageundirected")

相同
mean(transitivity(graph, type = "local"), na.rm = TRUE)