R корреляционная матрица, показывающая только часть данных с использованием ggcorr

#r #ggplot2 #ggally

#r #ggplot2 #ggally

Вопрос:

У меня есть большой набор данных с различными числовыми и факторными данными. Построение графика корреляции с помощью ggcorr (data) дает мне интересный график, но половина его бесполезна для меня, потому что мне просто нужно сопоставить описательные данные и данные измерений. С моими данными вместо треугольника длиной 9 будет квадрат 5 * 4. Есть ли способ сделать это? И есть ли способ добавить значения P в виде звездочек?

Короткий набор данных, похожий на мой:

 State <-as.factor(c("land", "loc2", "loc2", "loc3"))
Age <- c(20, 24, 22, 49)
Education<- as.factor(c(2, 2, 3, 1))
AreaHill <- c(NA, 22, 18, 2)
AreaPlain <-c(1, 3, NA, NA)
Style <-as.factor(c("s2", "s3", "s2", "s2"))
descriptive <-cbind(State, Age, Education, AreaHill, AreaPlain, Style)

Measure1 <-c(2, 4, 2, 2)
Measure2 <-c(4, 4, 2, 5)
Measure3 <-c(2, 3, 1, 1)
Measure4 <-c(2, 1, 2, 2)

measures <- cbind(Measure1, Measure2, Measure3, Measure4)
data <- cbind(State, Age, Education, AreaHill, AreaPlain, Style, Measure1, Measure2, Measure3, Measure4)

library(GGally)
ggcorr(data)

``` Here is what I have so far
[The correlations now, as a triangle][1]
and here is what I want to have: correlations between categories, but not among them, as well as the p. value as a star (or anything else).
[The potential image with correlation between some categories but without correlation among them][2]


  [1]: https://i.stack.imgur.com/a5Uib.jpg
  [2]: https://i.stack.imgur.com/cLUSP.jpg
  

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

1. State отсутствует в вашем примере… Итак, вы хотите добавить p-значение в *-обозначении к каждому квадрату? И зачем вам нужен весь квадрат? Матрица симметрична.

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

3. Меня интересуют все корреляции между «описательными» и «мерами», а не между собой. В итоге это будет иметь прямоугольную форму, с «описательной» на одной оси и «мерами» на другой. Это так понятно? Добавлено @Christoph State

4. Я думаю, вам нужно подмножество или создать свой собственный график.

5. Я не уверен, будет ли ggcorr работать в этом случае, поскольку он отображает все переменные в предоставленном наборе данных. Взгляните на пакет plot.matrix, найденный здесь: cran.r-project.org/web/packages/plot.matrix/vignettes/… Похоже, вам нужно будет построить свою собственную матрицу после получения интересующих вас значений корреляции. Изображение визуального факторного анализа по ссылке выше звучит примерно так, как вы описываете. Для записей «***» попробуйте ввести их в виде текста для отображения записей матрицы.

Ответ №1:

С помощью пакета plot.matrix, показанного @Jonni, можно создать корреляционную матрицу, не показывающую все комбинации

 library(plot.matrix)
corr.data<-correlate(data) # make all the correlations, as before
square <-corr.data[c(2:7),c(8:11)]# cut out the ones I am interested in
square <- as.matrix(square) # it works only as a matrix
plot(square) ## now it works, when as a matrix
plot(as.cor(square), reorder = F) # plot as correlation
  

теперь я должен снова добавить имена строк,

 rownames(square)<- c("State", "Age", "Education", "AreaHill", "AreaPlain", "Style")
plot(as.cor(square), las=2, reorder=F) ## and it gives me the plot with the correlated aspects named