[英]Add p-values in corrplot matrix
我計算了兩個矩陣之間的Spearman相關性,並使用corrplot
繪制了r值。 我如何僅繪制顯着的相關性(因此,即使p值小於0.00的那些相關性,即使是強相關性-r的高值,也僅刪除那些具有較高p值的相關性)。 我在psych
軟件包中使用corr.test
生成了相關矩陣,所以我在cor.matrix$p
已經有了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)
如何修改它以僅顯示重要的關聯?
看一下corrplot的示例。 做?corrplot
。 它具有執行所需功能的選項。 您可以在圖表本身上繪制p值,我認為這比放星星好,因為不熟悉該術語的人還有更多需要查找的內容。 將p值放在圖上,請執行以下corrplot(cor.matrix$r, p.mat = cor.matrix$p, insig = "p-value")
,其中cor.matrix是持有cor.test結果的對象。 insig
選項可以放入:
corrplot(cor.matrix$r, p.mat = cor.matrix$p, insig = "pch")
在不相關的關系上加上X corrplot(cor.matrix$r, p.mat = cor.matrix$p, insig = "pch")
(默認) corrplot(cor.matrix$r, p.mat = cor.matrix$p, insig = "n")
對圖不執行任何操作 如果您確實想要星星,請在相關矩陣圖上顯示p值-查看此線程Correlation Corrplot Configuration
雖然我不得不說我真的很喜歡@sven hohenstein的優雅子集解決方案。
創建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)
替換的值將顯示為白色單元格。
您要問的內容類似於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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.