平均距离与igraph平均值的关系

时间:2017-02-20 19:15:01

标签: r distance igraph

我正在尝试计算网络的平均路径长度,我面临以下问题。我过去使用average.path.length包中的igraph。这次我决定采用不同的路线:我想使用distances函数(也来自包igraph),然后找到所有距离的平均值。据我所知,distances函数只是计算图形顶点之间的成对最短路径,因此mean(distances(graph))应该返回平均路径长度。但是,当我尝试使用这种方法时,我注意到我得到了average.path.lengthmean_distance的指示应用给出的不同值。最初我认为问题是由一些隔离节点引起的,但当我在一个完全连接的玩具图上检查时,我遇到了同样的问题。

这是一个可重复的例子:

  toy.graph <- graph.formula(1-2,1-3,1-5,2-5,3-5,3-6,4-6)
  mean_distance(toy.graph)
  [1] 1.866667
  average.path.length(toy.graph)
  [1] 1.866667
  mean(distances(toy.graph))
  [1] 1.555556

据我所知,mean_distancedistances使用了不同的算法,但在这么小而简单的模型上差异是否应该如此之大?我错过了什么?

1 个答案:

答案 0 :(得分:2)

我认为你得到了一个不同的答案,因为你是平均整个距离矩阵而不是distance(toy.graph)的下三角|这包括对角线上的0,这会降低距离

library(igraph)
toy.graph <- graph.formula(1-2,1-3,1-5,2-5,3-5,3-6,4-6)
plot(toy.graph)
mean_distance(toy.graph)
#[1] 1.866667

average.path.length(toy.graph)
#[1] 1.866667

mean(distances(toy.graph))
#[1] 1.555556

mean(distances(toy.graph)[lower.tri(distances(toy.graph))])
#[1] 1.866667
相关问题