我想计算图表的平均聚类系数(来自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)
我会感激一些指导。
答案 0 :(得分:4)
使用transitivity(graph)
计算全局聚类系数(及物性):
这只是三角形和连接三元组的比例 图表。对于有向图,边缘的方向将被忽略。
同时,transitivity(graph, type = "average")
是transitivity(graph, type = "local")
的平均值,首先计算局部聚类系数,然后对它们求平均值:
无向图的局部传递性,这是计算的 vids参数中给出的每个顶点。一个地方的传递性 顶点是连接到顶点和三角形的三角形的比例 以顶点为中心的三元组。对于有向图的方向 边缘被忽略。
请参阅,例如?transitivity
和Clustering 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)