Я хотел бы «привести в порядок» или «кластеризовать» корреляции данной матрицы данных таким образом, чтобы высококоррелированные переменные появлялись рядом друг с другом.Например, если у меня есть такие данные:
n <- 1000
my_corr <- matrix(c(1, 0.8, 0.8, 0, 0, 0,
0.8, 1, 0.8, 0, 0, 0,
0.8, 0.8, 1, 0, 0, 0,
0, 0, 0, 1, 0.9, 0.9,
0, 0, 0, 0.9, 1, 0.9,
0, 0, 0, 0.9, 0.9, 1), nrow = 6)
my_chol <- chol(my_corr)
# Edit: Rui is right, I should have used replicate
#d <- do.call(cbind, lapply(1:6, function(x) rnorm(n)))
d <- replicate(6, rnorm(n))
d <- d %*% my_chol
d <- cbind(d[, -c(2, 4)], d[, 2], d[, 4])
Корреляции такие:
library(GGally)
ggcorr(d)
![enter image description here](https://i.stack.imgur.com/tWrB6.png)
Однако, «хочу» будет выглядеть так:
![enter image description here](https://i.stack.imgur.com/BYXHD.png)
Как мне это сделать, если я не знаю решение / возможно ли это с предвстроенная функция?