我正在尝试获取一个有向加权网络的中心性测量值。我一直在使用R语言中的igraph和tnet包。但是,我发现这两个包产生的结果有些不同,并且对于这些差异的原因感到有些困惑。请看下面:
require(igraph)
require(tnet)
set.seed(1234)
m <- expand.grid(from = 1:4, to = 1:4)
m <- m[m$from != m$to, ]
m$weight <- sample(1:7, 12, replace = T)
igraph_g <- graph.data.frame(m)
tnet_g <- as.tnet(m)
closeness(igraph_g, mode = "in")
2 3 4 1
0.05882353 0.12500000 0.07692308 0.09090909
closeness(igraph_g, mode = "out")
2 3 4 1
0.12500000 0.06250000 0.06666667 0.10000000
closeness(igraph_g, mode = "total")
2 3 4 1
0.12500000 0.14285714 0.07692308 0.16666667
closeness_w(tnet_g, directed = T, alpha = 1)
node closeness n.closeness
[1,] 1 0.2721088 0.09070295
[2,] 2 0.2448980 0.08163265
[3,] 3 0.4130809 0.13769363
[4,] 4 0.4081633 0.13605442
有人知道现在发生了什么吗?
igraph
中的closeness
函数中的标准化选项,但没有成功,并且已经注意到igraph
closeness
函数的接近度得分顺序有点奇怪。事实证明,不一致性是由于igraph
和tnet
在计算接近度时处理权重的方式不同造成的。有关更多详细信息,请参见下面的答案。 - Patrick S. Forscher