【问题标题】:Reporting significance level in corrplot()在 corrplot() 中报告显着性水平
【发布时间】:2023-03-30 21:10:01
【问题描述】:

我目前正在使用 R 中 corrplot 包中的 corrplot(),我偶然发现了两个问题。为简单起见,我将使用与 corrplot 的帮助/介绍页面相同的符号。

  1. 我想写下我的 p 值或测试在所有单元格中的显着性(或两者都有!),而不仅仅是不显着的那些。

  2. 我想要这些铭文只在上三角形。

首先要解决 2),我已经能够使用它,但如果感觉有点 hacky:

corrplot(M, type="upper", p.mat = res1[[1]], insig="p-value", tl.pos="n")
corrplot(M, type="lower", add=T, tl.pos="d", cl.pos="n"))

但是我无法弄清楚第 1 名。任何建议都会有所帮助!

【问题讨论】:

  • 您可以在第一个情节中添加sig.level=0
  • 虽然在技术上可行,但 corrplot() 舍入到小数点后两位,因此它不显示精度。对 p 值有多小进行某种指示会更有用。
  • 所以您想添加,例如"<0.0001" 或类似?我认为通过向 pvalue 矩阵添加格式然后使用text 进行绘图会更容易。
  • 当然,类似的东西会起作用。也许星号表示意义或类似的东西。使用文本功能手动输入它们似乎很痛苦......

标签: r r-corrplot


【解决方案1】:

快速的方法是将sig.level=0 添加到第一个图中,这样所有的 p 值都会显示出来(实际上,由于数值精度,一些 p 值将完全为零,因此您可能需要将其设置为 @987654324 @,例如)

require(corrplot)

# Data
M <- mtcars[3:7]
pval <- psych::corr.test(M, adjust="none")$p

# Corrplot
corrplot(cor(M), type="upper", p.mat=pval, insig="p-value", 
                                               tl.pos="n", sig.level=0)
corrplot(cor(M), type="lower", add=T, tl.pos="d", cl.pos="n")

这给了

但是,如果您想为 p 值添加更多细节,则可能更容易对绘图进行后期格式化并使用 text 调用添加它们

# Plot
corrplot(cor(M), type="upper", tl.pos="n")

# Get positions & plot formatted p-values
pos <- expand.grid(1:ncol(pval), ncol(pval):1)
text(pos, p_format(pval))

# lower tri
corrplot(cor(M), type="lower", add=T, tl.pos="d", cl.pos="n")

给予

格式化函数

p_format <- function(x, ndp=3)
{
  out <- format(round(as.numeric(x),ndp),ns=ndp,scientific=F,just="none")
  ifelse(out=="0.000","<0.0001", out)
}

我的观点(fwiw)是这给情节添加了太多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-19
    • 2013-11-14
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    相关资源
    最近更新 更多