如何使用 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 (将#修改为@)