Общие решения, предложенные в комментариях @Chase и @ bill_080, нуждаются в небольшом улучшении, чтобы (частично) удовлетворить потребности ОП.
Воспроизводимый пример:
require(MASS)
set.seed(1)
dat <- data.frame(mvrnorm(100, mu = c(2,6,3),
Sigma = matrix(c(10, 2, 4,
2, 3, 0.5,
4, 0.5, 2), ncol = 3)))
Вычислить матрицу различий стандартизированных данных с использованием эйсильдовских расстояний
dij <- dist(scale(dat, center = TRUE, scale = TRUE))
, а затем рассчитать иерархическую кластеризацию этих данных с использованием метода среднего по группе
clust <- hclust(dij, method = "average")
Далее мы вычисляем порядок отсчетов на основе формирования 3 ('k') групп из дендрограммы, но мы могли бы выбрать что-то еще здесь.
ord <- order(cutree(clust, k = 3))
Далее вычисляем различия между образцами на основе дендрограммы, копенетических расстояний:
coph <- cophenetic(clust)
Вот 3 изображения:
- Исходная матрица различий, отсортированная по группам кластерного анализа,
- Копенетические расстояния, снова отсортированные как выше
- Разница между исходными различиями и копенетическими расстояниями
- Шепардоподобный график, сравнивающий исходные и копенетические расстояния; чем лучше кластеризация при захвате исходных расстояний, тем ближе к линии 1: 1 будут лежать точки
Вот код, который создает вышеприведенные графики
layout(matrix(1:4, ncol = 2))
image(as.matrix(dij)[ord, ord], main = "Original distances")
image(as.matrix(coph)[ord, ord], main = "Cophenetic distances")
image((as.matrix(coph) - as.matrix(dij))[ord, ord],
main = "Cophenetic - Original")
plot(coph ~ dij, ylab = "Cophenetic distances", xlab = "Original distances",
main = "Shepard Plot")
abline(0,1, col = "red")
box()
layout(1)
, который производит это на активном устройстве:
Сказав все это, однако, только график Шепарда показывает «корреляцию между кластеризованными данными и матрицей сходства», и это не график изображения (уровень графика). Как бы вы предложили вычислить корреляцию между двумя числами для всех парных сравнений копенетического и исходного [dis] сходства?