簡體   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