首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相关网络分析R

相关网络分析R
EN

Stack Overflow用户
提问于 2016-07-18 17:44:28
回答 2查看 1.5K关注 0票数 1

我在一些客户之间建立了一个关联网络。我使用qgraph来绘制它,现在我想通过定义集群、集线器和中心性来做一些图形分析。

我在图形包edge.betweenness.community中发现了这个R函数,它似乎在图形中显示簇,所以我将我的qgraph转换为图形,但该函数不起作用,因为我有负相关值。

有没有其他方法可以做到这一点?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-07-25 11:25:55

根据@Karolis的回答,corrr包的开发版本使用network_plot()做类似这样的事情。下面是一个示例(包括当前开发版本的安装):

代码语言:javascript
复制
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()

票数 2
EN

Stack Overflow用户

发布于 2016-07-18 19:55:06

单行道

转换您的相关性,使-1变为0,1仍为1:

代码语言:javascript
复制
cors <- (cors+1)/2

这样,负相关性将被解释为“最低关联”。相反,如果-1和1都应该被视为“关联”,那么您可以获取相关矩阵的绝对值:

代码语言:javascript
复制
cors <- abs(cors)

另一种方式

使用不同的聚类算法。一个候选者-分层聚类,因为它在距离矩阵上操作。你有一个相关矩阵。因此,在开始之前,您应该获得距离:

代码语言:javascript
复制
dists <- as.dist(1-cors)

然后进行集群:

代码语言:javascript
复制
htree <- hclust(dists)
plot(htree)                # inspect the result visually.
groups <- cutree(htree, 5) # 5 here is desired number of groups.

也是

查看软件包"WGCNA“,它代表”加权基因共表达网络分析“。它具有一些有用的功能,用于从“网络”数据中获取集群。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38433470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档