2015-04-17 2 views
1

Я в настоящее время использую corrplot() из пакета corrplot в R, и я наткнулся на две проблемы. Для простоты я буду использовать те же обозначения, что и страница справки/введения для corrplot.Уровень значимости отчетности в corrplot()

  1. Я хотел бы вписывать либо мой р-значение или как значительное испытание было (или оба!) Во всех клетках, а не только незначительные из них.

  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. Любой предложения были бы полезны!

+0

Вы можете добавьте 'sig.level = 0' в первый участок – user20650

+0

В то время как technicall y, который работает, corrplot() округляет до двух десятичных знаков, поэтому он не показывает точность. Было бы более полезно иметь какие-то признаки того, насколько мала величина p. – pocketlizard

+0

Итак, вы хотели бы добавить, например, «<0,0001» или подобное? Я думаю, что это будет проще сделать, добавив формат в матрицу pvalue, а затем построив с помощью 'text'. – user20650

ответ

2

Быстрый способ добавления sig.level=0 к первому графику, поэтому отображаются все значения p (фактически, из-за числовой точности некоторые значения p будут равными нулю, поэтому вам может потребоваться установить его на sig.level=-0.1, для пример)

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") 

Это дает

enter image description here

Однако, если вы хотите добавить больше деталей к р значений, вероятно, легче пост-формат сюжет и добавить их с помощью 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") 

Чтобы дать

enter image description here

функция Формат

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) является то, что это добавляет слишком много информации на участке

Смежные вопросы