Как мне отобразить корреляционную матрицу в процентах

#r #correlation #ggcorrplot

#r #корреляция #ggcorrplot

Вопрос:

Я пытаюсь отобразить метки корреляции в процентах вместо того, чтобы отображать их между числами -1 и 1. Я смог сделать это с помощью пакета ggcorrplot , Однако это лишило меня возможности отображать их с помощью палитры цветов и отображать их только с помощью цветов серой ячейки. Вот как это выглядит

введите описание изображения здесь

Я смог сделать это с помощью пакета ggcorrplot , однако это лишило меня возможности отображать их с помощью цветовой палитры.

 #if(!require(devtools)) install.packages("devtools")
#devtools::install_github("kassambara/ggcorrplot")
library(ggcorrplot)
corr <- round(cor(test3),3)
corr <- corr * 100
ggcorrplot(corr, hc.order = TRUE, type = "lower",
           lab = TRUE, colors = c("blue", "white", "red"))

  

Есть ли способ получить результаты в процентах и сохранить цвета, которые мы обычно имеем на графике корреляционной матрицы. Также любой способ добавить процент к меткам, поскольку в настоящее время он отображает только число.

Заранее большое спасибо!!

Комментарии:

1. Зачем вам нужен процент? Коэффициент корреляции не является пропорцией, поэтому простое умножение на 100 не имеет смысла. Нулевое значение, например, не означает 0%.

2. @neilfws Если у меня корреляция между двумя переменными равна 0,5, не будет ли это означать, что они коррелируют на 50%

3. @neilfws правильно. Если ничего, вам следует сделать corr = round(cor(test3)^2,3) .

4. @AnalyticsTeam, cor (по умолчанию) выдает коэффициент корреляции Пирсона ( r ). Если вы возведете это в квадрат, вы получите

5. @d.b. большое спасибо за всю помощь. Действительно ценю это.

Ответ №1:

 corr <- round(cor(mtcars)^2,3)
corr <- corr * 100

diag(corr) = NA
corr[upper.tri(corr)] = NA

library(reshape2)
d = melt(corr)
d = d[!is.na(d$value),]

library(ggplot2)
ggplot(d, aes(x = Var1,
              y = Var2,
              fill = value,
              label = ifelse(is.na(value), "", paste0(value,"%"))))  
    geom_tile(color = "white")  
    scale_fill_gradientn(colors = c("green", "white", "red"), na.value = NA)  
    geom_text()  
    theme_bw()
  

Комментарии:

1. Большое спасибо за ваш ответ. Есть ли способ, которым я могу вставить % в столбец значений d

2. Большое спасибо за ответ, сработало как по волшебству. Это именно то, что я искал