我在一些客户之间建立了一个关联网络。我使用qgraph来绘制它,现在我想通过定义集群、集线器和中心性来做一些图形分析。
我在图形包edge.betweenness.community中发现了这个R函数,它似乎在图形中显示簇,所以我将我的qgraph转换为图形,但该函数不起作用,因为我有负相关值。
有没有其他方法可以做到这一点?
非常感谢!
发布于 2016-07-25 11:25:55
根据@Karolis的回答,corrr包的开发版本使用network_plot()做类似这样的事情。下面是一个示例(包括当前开发版本的安装):
install.packages("devtools")
devtools::install_github("drsimonj/corrr")
library(corrr)
airquality %>% correlate() %>% network_plot(min_cor = .2)

该图用红线表示负相关性,但使用相关性的绝对值作为接近/距离度量,根据的相关性大小对变量进行聚类。这是由基本函数abs()处理的。如果您认为这可能有帮助,您可以找到用于生成network_plot() here的相关代码。
另外,我计划很快发布corrr的更新版本,这样你就可以在安装后直接从CRAN (install.packages("corrr"))访问network_plot()。
发布于 2016-07-18 19:55:06
单行道
转换您的相关性,使-1变为0,1仍为1:
cors <- (cors+1)/2这样,负相关性将被解释为“最低关联”。相反,如果-1和1都应该被视为“关联”,那么您可以获取相关矩阵的绝对值:
cors <- abs(cors)另一种方式
使用不同的聚类算法。一个候选者-分层聚类,因为它在距离矩阵上操作。你有一个相关矩阵。因此,在开始之前,您应该获得距离:
dists <- as.dist(1-cors)然后进行集群:
htree <- hclust(dists)
plot(htree) # inspect the result visually.
groups <- cutree(htree, 5) # 5 here is desired number of groups.也是
查看软件包"WGCNA“,它代表”加权基因共表达网络分析“。它具有一些有用的功能,用于从“网络”数据中获取集群。
https://stackoverflow.com/questions/38433470
复制相似问题