【问题标题】:Manual calculation of closeness measure and comparing with igraph package in R手动计算接近度并与 R 中的 igraph 包进行比较
【发布时间】:2014-06-16 19:37:31
【问题描述】:

我试图使用 R 中的igraph 包计算图形的接近度。我用于计算的示例数据如下,

1 2
1 5
2 3    
5 4
4 6
2 5
3 4

当我手动执行时,结果不匹配。这是igraphcloseness给出的定义:

接近度是最短路径平均长度的倒数 到/从图中的所有其他顶点

这是我手动计算 节点 1closeness 的方法:

  1. 首先我计算从节点1到其他节点的最短路径:

    • 节点1可以1步到达节点2,也是最短路径。

    • 节点1可以1步到达节点5,也是最短路径。

    • 节点 1 可以分 3 步到达节点 6,以此类推。

  2. 然后,我取这些最短路径的平均值:

    (1 (1→2) + 1 (1→5) + 2 (1→3) + 2 (1→4) + 3 (1→6))/5 = (1+1+2+2+3)/5 = 9/5

  3. 最后我把它反转,给出的接近度值为 0.555

当我在 R 中从 igraph 包中运行 closeness 方法时,我为 Node 1 获得的结果是 0.1111。

谁能帮我找出我在计算中遗漏了什么?

【问题讨论】:

  • 这很奇怪。 ?closeness 以您提供的文字给出定义,但帮助页面上的公式是 1/sum( d(v,i), i != v) 等于 0.1111 值,但它是逆和而不是逆平均值。也许给维护者发一封电子邮件?
  • @GavinKelly 感谢您指出这一点。我给维护者发了邮件。
  • igraph 手册中的文字有误。而不是“按平均长度的倒数”,它应该是“按总长度长度的倒数”。

标签: r graph igraph


【解决方案1】:

我已经在评论中写了它,但只是为了得到一个答案。 igraph 手册中的文字是错误的。而不是平均长度的倒数,它应该总长度的倒数

【讨论】:

    【解决方案2】:

    其实定义没有错。这是另一种形式的接近度定义。请参考enter link description here。 “总长度的倒数”是萨比杜西对接近度的定义。在第 226 页,弗里曼说

    “这个度量取决于网络中计算它的点的数量。因此,我们无法比较从不同大小的图表中绘制的点的(接近度)值” em>

    可以通过遵循 Beauchamp 对接近度的定义来克服这个问题,接近度是平均长度的倒数。在这种情况下,我们在测量平均值时取 n-1 而不是 n。 statnet R 包中还提供了基于 Beauchamp 定义的接近度度量的实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多