如何解决如何使用 corrplot 计算偏相关?
我通常使用以下代码来生成一个很好的相关矩阵 - 是否有一种简单方法来控制带有 corrplot 的变量(即,计算偏相关而不是简单相关)?
提前致谢!
library(corrplot)
# mat : is a matrix of data
# ... : further arguments to pass to the native R cor.test function
cor.mtest <- function(mat,...) {
mat <- as.matrix(mat)
n <- ncol(mat)
p.mat<- matrix(NA,n,n)
diag(p.mat) <- 0
for (i in 1:(n - 1)) {
for (j in (i + 1):n) {
tmp <- cor.test(mat[,i],mat[,j],...)
p.mat[i,j] <- p.mat[j,i] <- tmp$p.value
}
}
colnames(p.mat) <- rownames(p.mat) <- colnames(mat)
p.mat
}
#Select a subset of variables into a new df:
myvars <- c("1","2","3","4","5","6","7","8","9","10","11","12","13","14")
DataFactors <- Data[myvars]
M<-cor(DataFactors)
# matrix of the p-value of the correlation
p.mat <- cor.mtest(DataFactors )
head(p.mat[,1:5])
col <- colorRampPalette(c("#BB4444","#EE9988","#FFFFFF","#77AADD","#4477AA"))
corrplot(M,method="color",col=col(200),type="upper",addCoef.col = "black",# Add coefficient of correlation
tl.col="black",tl.srt=45,#Text label color and rotation
# Combine with significance
p.mat = p.mat,sig.level = 0.05,insig = "blank",# hide correlation coefficient on the principal diagonal
diag=FALSE
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。