Как интерпретировать высоту кластера на основе корреляционной матрицы?

#r #cluster-analysis #hierarchical-clustering #cross-correlation

#r #кластерный анализ #иерархическая кластеризация #взаимная корреляция

Вопрос:

Я создаю кластер на основе симметричной корреляционной матрицы. Эта матрица имеет значения от 0 до 1.

 docs <- dist(as.matrix(data), method = "euclidean")
hclust_dist<- as.dist(docs)
hclust_dist[is.na(hclust_dist)] <- 0
hclust_dist[is.nan(hclust_dist)] <- 0
sum(is.infinite(hclust_dist))  # THIS SHOULD BE 0
h <- hclust(hclust_dist, "ward.D2")
plot(h, cex=0.6)
 

Когда я строю график, я получаю этот кластер:

Кластерная дендорограмма

Я хочу разделить кластер на разные группы с порогом оценки корреляции 0,7. Это означает, что единицы в одной группе имеют общую оценку корреляции не менее 0,7.

Однако мои значения высоты варьируются от 0 до 30.

Кто-нибудь знает, как мне интерпретировать эту высоту, чтобы преобразовать ее в показатель корреляции от 0 до 1?

Или мне нужно использовать другой метод кластеризации?

Ответ №1:

Я нашел возможное решение.

Я попробовал корреляционный кластер вместо того, который я использовал с этим кодом:

 data= read.csv(file="individuo21.csv", sep =";", header = T, row.names = 1)

dissimilarity= 1 - data
distance = as.dist(dissimilarity) 
h<-(hclust(distance))
plot(h, cex=0.3)

groups <- cutree(h, h=0.70) 
View(groups)
 

У меня есть кластер с высотой от 0 до 1, как показатель корреляции.

КЛастер, полученный из корреляционной матрицы