Как построить матрицу корреляции в R с уже полученными значениями корреляции между переменными? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть выходная таблица, которая выглядит следующим образом:

Vars Corr  SE
1_2  0.51  0.003
1_3  0.32  0.001
...
49_50 0.23 0.006

, где значения корреляции были получены в другом программном обеспечении для переменных, указанных в Vars (1_2 относится к переменной 1 и 2).Каков наилучший способ преобразовать это в формат, который мог бы отображать матрицу корреляции между всеми 50 переменными?

Я предполагаю, что должен быть способ сделать диагонали 1 также?

Спасибо!

1 Ответ

0 голосов
/ 20 сентября 2019

Итак, предположим, что у вас есть данные в одном столбце, вы можете реструктурировать и использовать corrplot

cordata = data.frame(
  Vars = paste0(rep(1:50, times = 50), "_", 
                rep(1:50, each = 50)),
  Corr = rnorm(n = 50*50, mean = 0, sd = .3)
) %>%
  #for the sake of demonstration return Corrs beyond -1 and 1 to 0.
  mutate(Corr = replace(Corr, Corr > 1 | Corr < -1, 0))

head(cordata)
  Vars         Corr
1  1_1  0.453807195
2  2_1  0.237179163
3  3_1  0.303635874
4  4_1 -0.314318833
5  5_1  0.008682918
6  6_1 -0.067164730

cormat = matrix(cordata$Corr, byrow = TRUE, ncol = 50)
# You can use corrplot::corrplot
corrplot(cormat)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...