我试图使用R中的igraph
包来计算图的接近程度。我用于计算的样本数据如下,
1 2
1 5
2 3
5 4
4 6
2 5
3 4
当我手动执行此操作时,结果不匹配。这是igraph
对closeness
:
接近度是最短路径的平均长度的倒数 来自/来自图中的所有其他顶点
以下是我为节点1 手动计算closeness
的方式:
首先,我计算从节点1 到其他节点的最短路径:
节点1 可以在1步中到达节点2 ,这也是最短的路径。
节点1 可以在1步中到达节点5 ,这也是最短的路径。
节点1 可以分三步到达节点6 ,依此类推。
然后,我取这些最短路径的平均值:
( 1 (1→2)+ 1 (1→5)+ 2 (1→3)+ 2 (1→4)+ 3 (1→6))/ 5 =(1 + 1 + 2 + 2 + 3)/ 5 = 9/5
最后我反过来,给出接近值0.555
当我从closeness
包中运行R中的igraph
方法时,我为节点1 获得的结果为0.1111。
有人可以帮我找到我在计算中遗漏的内容吗?
答案 0 :(得分:1)
我已在评论中写过,但只是为了得到答案。 igraph手册中的文字是错误的。而不是乘以平均长度的倒数,它应该是乘以总长度的倒数。
答案 1 :(得分:0)
实际上这个定义并没有错。它是接近定义的另一种形式。请参考enter link description here。 '反向总长度'是Sabidussi对亲近的定义。在第226页,弗里曼说
"此度量取决于计算它的网络中的点数。因此,我们不能比较从不同大小的图表中绘制的点的(接近度)值#34;
可以通过遵循Beauchamp对平均长度的倒数的接近度定义来克服这个问题。在这种情况下,我们在测量平均值时取n-1而不是n。还有一个基于Beauchamp定义的贴近度量的实现,可以在statnet R包中找到。