【问题标题】:How to calculate group betweenness centrality in R如何计算R中的组介数中心性
【发布时间】:2015-01-09 11:51:23
【问题描述】:

我正在尝试在社交网络分析中实现群体中心度度量的计算。

埃弗雷特、M. G. 和 S. P. Boratti。 “群体的中心性和 上课。”数学社会学杂志 23,没有。 3(一月 1999):181-201。 doi:10.1080/0022250X.1999.9990219.

我已经设法计算了组接近中心性,但我仍然遇到组介数中心性问题。

有一个 igraph 对象 net 和一个组 g,在这里面,我需要计算两件事 1)连接不在组(g)内的每个顶点的最短路径数,但至少通过组中的一个顶点 2) 不在组内的所有顶点之间的最短路径总数。

谁能帮我写一些进一步的代码来做到这一点。

我在以下链接上找到了一些东西,但只有一个声明说它应该是可能的:https://lists.nongnu.org/archive/html/igraph-help/2008-03/msg00043.html

更新:::

我现在通过反复试验设法编写以下函数来获取 non-group-part 一组顶点中的所有最短路径,这些顶点通过该组中的另一个特定组设置...

get.shortest.paths.throug.group<-function(graph, grp) {
num <- 1:vcount(graph)
y <- cbind(num, V(graph)$name)

no.group <- as.numeric(y[(y[,2] %in% grp)==FALSE, 1])
group <- as.numeric(y[(y[,2] %in% grp)==TRUE, 1])
group.chr <- as.character(y[(y[,2] %in% grp)==TRUE, 1])   
count <- vector(mode="numeric", length(group))    

paths <- lapply(1:(length(no.group)-1), function(i) {
get.all.shortest.paths(
  graph, 
  from = no.group[i],
  to = no.group[(i+1):length(no.group)]
)$res
})

list <- unsplit(paths, rep.int(seq_along(paths), sapply(paths, length)))

for (j in 1:length(group)) {
count[j] <-  sum(grepl(group.chr[j], list)*1)
}

gbc <- (2*sum(count)/length(list))/((vcount(graph)-length(group))*(vcount(graph)-length(group)-1))

return(gbc)
}

但是...由于我的网络包含 7500 个 vetices; 118在组和7382不组,这是一个非常耗时的功能。在 7382 个非组顶点之间创建所有最短路径的列表并不是那么耗时,但是找出 31.000.000+ 个最短路径中的哪一个通过组的函数部分非常慢

for (j in 1:length(group)) { count[j] <- sum(grepl(group.chr[j], list)*1) }

这能以更有效的方式完成吗?

有人编写了一个 java 代码http://sourceforge.net/p/jung/patches/12/ 来进行计算(显然以更快的方式)。但是我没有使用java的经验。是否可以将 jung-patch 改编为 R 脚本?

【问题讨论】:

  • 您好,感谢您的回答。但是组介数是介数函数的一个组成部分吗?我只能确定两种可能的顶点介数和边介数。

标签: r igraph


【解决方案1】:

Puzis 等人在这里为快速可扩展算法提供了非语言特定的半码:http://journals.aps.org/pre/abstract/10.1103/PhysRevE.76.056709

这里有一个 Python 实现: http://ftp.aip.org/epaps/phys_rev_e/E-PLEEE8-76-064711/

我的 R 还不够好,现在无法直接实现它,所以很遗憾我没有最终答案,但作为一个新用户,我也不能在评论中留下这个。祝你好运!如果您确实设法在 R 中实现它,请发布。

【讨论】:

    猜你喜欢
    • 2021-02-18
    • 2019-04-08
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多