#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, как показатель корреляции.