我想计算一个图的平均聚类系数(来自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)
如果您能给我一些指导,我将不胜感激。
发布于 2018-02-19 01:15:06
使用transitivity(graph)
计算全局聚类系数(传递性):
这只是图中三角形和连通三角形的比率。对于有向图,忽略边的方向。
同时,作为transitivity(graph, type = "local")
的平均值的transitivity(graph, type = "average")
首先计算局部聚类系数,然后对它们进行平均:
无向图的局部传递性,这是为vids参数中给定的每个顶点计算的。顶点的局部传递性是连接到顶点的三角形与以顶点为中心的三角形的比率。对于有向图,忽略边的方向。
例如,参见?transitivity
和Clustering coefficient。
因此,首先,它们都是有效的措施,选择应该取决于您的目的。它们之间的区别非常明显(参见维基百科页面):
值得注意的是,该指标将更多的权重放在低度节点上,而传递性比率则将更多的权重放在高度节点上。实际上,每个局部聚类得分由k_i(K_i 1)加权的加权平均值与全局聚类系数相同
其中k_i是我相邻的顶点的数量。因此,也许同时使用这两种方法也是相当公平的。
发布于 2020-08-28 19:17:50
transitivity(g, type="local")
输出向量的顺序如何?是否与以下顺序相同:
degree(g, mode="all")
度向量有索引,但聚类系数没有
发布于 2021-07-02 00:33:26
@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)
https://stackoverflow.com/questions/48853610
复制相似问题