2014-01-15 59 views
0

我計算兩個矩陣和我使用corrplot繪製的r值之間的Spearman相關添加的p值。我怎樣才能繪製顯着的相關性(所以只有那些p值低於0.00的相關性,並刪除那些具有較高p值的相關性,即使是強相關性 - r的高值)。我產生使用corr.test相關矩陣的psych包,所以我已經在cor.matrix$p在corrplot矩陣

的P值這是我使用的代碼:

library(corrplot) 
library(psych) 
corr.test(mydata_t1, mydata_t2, method="spearman") 
M <- corrplot(cor.matrix$r, method="square",type="lower",col=col1(100),is.corr=T,mar=c(1,1,1,1),tl.cex=0.5) 

如何修改它來繪製只有顯著corelations ?

+0

你想對相關度大於零的單元格做什麼? –

+0

也許我沒有解釋清楚...我想繪製積極和消極的相關性,與ap值< 0.05. If p> 0.05,我想要一個白色細胞... –

回答

2

看看corrplot的例子。做?corrplot。它有做你想做的選擇。 您可以繪製圖表本身的p值,我認爲這比放置星號更好,因爲不熟悉該術語的人員還有一件事要查找。 把p值放在圖上做這個corrplot(cor.matrix$r, p.mat = cor.matrix$p, insig = "p-value")其中cor.matrix是持有cor.test結果的對象。 該insig選項可以把:

  • p值(如上所示)
  • 空出微不足道的相關性與corrplot(cor.matrix $ R,p.mat = cor.matrix $ P,INSIG =「空白「)`
  • 劃掉(放在一個X)顯着相關性)與選項corrplot(cor.matrix$r, p.mat = cor.matrix$p, insig = "pch")(默認)
  • 什麼也不做一起的情節,與corrplot(cor.matrix$r, p.mat = cor.matrix$p, insig = "n")

如果你w ^螞蟻星,相關矩陣圖上的p值 - 看看這個線程Correlation Corrplot Configuration

雖然我不得不說我真的很喜歡@sven hohenstein's優雅的子集解決方案。

1

你所問的是類似於subset作用:向量,矩陣或符合條件 數據幀的

返回子集。

所以,你可以這樣做:

cor.matrix <- subset(cor.matrix, p<0.00) 
P <- corrplot(cor.matrix$r, method="square",type="lower",col=col1(100),is.corr=T,mar=c(1,1,1,1),tl.cex=0.5) 
+0

我嘗試使用子集,但它說:沒有找到對象「p」 ... –

+0

也許現在可行(我編輯了這個問題),但其他兩個答案更好,並考慮到包的功能。 – Llopis

4

創建的cor.mat副本,並用零替換相應的相關係數:

cor.matrix2 <- cor.matrix 

# find cells with p-values > 0.05 and replace corresponding 
# correlations coefficients with zero 
cor.matrix2$r[cor.matrix2$p > 0.05] <- 0 

# use this matrix for corrplot 
M <- corrplot(cor.matrix2$r, method="square",type="lower",col=col1(100), 
       is.corr=T,mar=c(1,1,1,1),tl.cex=0.5) 

的替代值將顯示爲白色的單元格。

+0

如果我想繪製所有的相關關係,但在具有顯着相關性的細胞中添加一顆星? –

+0

@FrancescadeFilippis這是另一個問題。你應該問一個新問題。 –