繁体   English   中英

通过 p 值对相关矩阵进行阈值处理

[英]Thresholding a correlation matrix by p-value

我想对相关矩阵设置阈值以仅保留 p 值 < 0.01 的值。 我之前在 StackOverflow 上看到过这个问题的回答,并尝试了建议的代码,但是当应用阈值时,矩阵的结构消失了。

例如,我有一个由一堆数字组成的矩阵......

data <- matrix(rnorm(6),100,22)

然后我得到一个相关矩阵...

corr_subj_data <-rcorr(data)
corr_matrix <- corr_subj_data$r
p_vals <- corr_subj_data$P

我尝试使用 numel(matlab 包)来复制我在 Matlab 中执行此任务的代码。 但是,在这里似乎行不通。

for(idx in numel(p_vals)) {
pval <- P_vals[idx]
    if (pval > 0.01){
        corr_matrix[idx] <- NA
}}

基本上在这里,我只是试图遍历矩阵中的每个 p 值,如果它大于 0.01,则将相关矩阵中的相应值替换为“NA”。

然后我查了一下,我找到了下面的建议代码:

corr_matrix[p_vals < 0.01]

这正确地确定了相关矩阵的阈值,但我失去了我拥有的 22 x 22 结构。 看起来它变成了一个数字序列(不熟悉 R 中的数据类型)。

如果有人对如何在阈值化后保留相关矩阵的结构有任何建议,我将不胜感激!

使用该行:

corr_matrix[p_vals >= 0.01] <- NA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM