gpt4 book ai didi

r - 用R计算一个顶点(节点)的局部聚类系数(手工)

转载 作者:行者123 更新时间:2023-12-04 15:50:35 33 4
gpt4 key购买 nike

local clustering coefficient by hand

我找到了一个展示如何手动计算 LCC 的示例(见图)。

如何在 R 中复制这些步骤?重点是找到“邻居之间的实际链接数”(中间步骤)

我最好手动计算一下

*igraph包有提供这个数字吗?

示例邻接矩阵:

matrix(data = c(0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0), ncol = 4)

最佳答案

所有这些都可以在 igraph 中完成。很高兴你举了一个例子,但由于图是完全连接的,所有顶点的 LCC=1。我决定使用稍微复杂一点的图表。我将通过“手工”顶点 1 的详细部分。

示例图

library(igraph)

set.seed(1234)
g = erdos.renyi.game(5, 0.7)
LO = matrix(c(0,2,1,1,1,0,0,-1,1,0), nrow=5, ncol=2)
plot(g, layout=LO)

Sample Graph

首先,是的,igraph 有一个用于 LCC 的内置函数 transitivity。对于我的示例图,您可以使用

transitivity(g, type="localundirected")
[1] 0.6666667 0.0000000 0.3333333 0.3333333 0.6666667

但是你的问题的主要部分是手算。您唯一需要从图中得到的东西是第一个两个步骤 - 度中心性邻居之间的实际链接

Degree Centralitydegree 函数给出

degree(g)
[1] 3 2 3 3 3
degree(g, 1) ## Vertex 1 only
[1] 3

正如您在问题中所建议的,唯一具有挑战性的部分是邻居之间的实际联系。你可以通过使用子图来得到这个由一个点的邻居引起,然后检查边的数量。所以对于顶点 1 我们得到

ecount(induced_subgraph(g, neighbors(g, 1)))
[1] 2

这是顶点 1 的完整计算

(DC   = degree(g, 1))
[1] 3
>(ALAN = ecount(induced_subgraph(g, neighbors(g, 1))))
[1] 2
(MaxPoss = DC*(DC-1)/2)
[1] 3
(LCC = ALAN/MaxPoss)
[1] 0.6666667

这与上面给出的传递性一致。

关于r - 用R计算一个顶点(节点)的局部聚类系数(手工),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53981547/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com