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

切尔西

我想对相关矩阵设定阈值,以仅保留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中的数据类型)。

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

大卫·罗宾逊(David Robinson)

使用该行:

corr_matrix[p_vals >= 0.01] <- NA

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章