#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
). Если вы возведете это в квадрат, вы получите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. Большое спасибо за ваш ответ. Есть ли способ, которым я могу вставить
%
в столбец значений d2. Большое спасибо за ответ, сработало как по волшебству. Это именно то, что я искал