R - 结合 cor.mtest 和 p.adjust

标签 r

有没有办法用这个 cor.mtest 函数来解释 p 值多重比较(例如 p.adjust)?代码来自 http://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html

谢谢!

cors<-cor(rel_tnum_data)
cor.mtest <- function(mat, conf.level = 0.95) {
mat <- as.matrix(mat)
n <- ncol(mat)
p.mat <- lowCI.mat <- uppCI.mat <- matrix(NA, n, n)
diag(p.mat) <- 0
diag(lowCI.mat) <- diag(uppCI.mat) <- 1
for (i in 1:(n - 1)) {
    for (j in (i + 1):n) {
        tmp <- cor.test(mat[, i], mat[, j], conf.level = conf.level)
        p.mat[i, j] <- p.mat[j, i] <- tmp$p.value
        lowCI.mat[i, j] <- lowCI.mat[j, i] <- tmp$conf.int[1]
        uppCI.mat[i, j] <- uppCI.mat[j, i] <- tmp$conf.int[2]
    }
}
return(list(p.mat, lowCI.mat, uppCI.mat))
}
res1 <- cor.mtest(rel_tnum_data, 0.95)
res2 <- cor.mtest(rel_tnum_data, 0.99)
corrplot(cors, p.mat = res1[[1]], sig.level=0.05, insig="blank", cl.align="r", tl.cex=0.6, order="hclust", type="lower", tl.srt=60, cl.ratio=0.1)

最佳答案

您可以对由 cor.mtest 函数返回的 p 值矩阵(例如 res1)进行矢量化。之后,p.adjust函数将帮助您获得调整后的p值。

pAdj <- p.adjust(c(res1[[1]]), method = "BH")

然后使用调整后的 p 值创建原始矩阵。

resAdj <- matrix(pAdj, ncol = dim(res1[[1]])[1])

然后 corrplot 应该准备好使用调整后的 p 值创建绘图。

corrplot(cors, p.mat = resAdj, sig.level=0.05, insig="blank", cl.align="r", tl.cex=0.6, order="hclust", type="lower", tl.srt=60, cl.ratio=0.1)

请注意p.mat = resAdj

关于R - 结合 cor.mtest 和 p.adjust,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656481/

相关文章:

r - 许多矩阵对之间的相似性/距离

r - 尝试在 Linux 服务器上运行多个实例时 H2o 崩溃

r - 在 R 中使用参数构建 URL

从数据框中删除 N/A

r - R 中的 contrib.url(repos, "source") 错误尝试使用 CRAN 而不设置镜像调用 : install. 包 -> contrib.url 执行停止

jquery - renderUI 中 Shiny 的语义 Ui 元素

r - 用于访问 ggplot2 图层中数据的点语法

r - 在 YAML `in_header:` 中包含多个文件

r - 使用R读出excel-colorinfo

R:将字符添加到字符串中的特定位置,正则表达式语法有问题