Чувствительность решения иерархической кластеризации в r - PullRequest
0 голосов
/ 17 января 2019

Я использую иерархическую кластеризацию для извлечения заданного количества кластеров из набора данных. Моя цель - проверить, насколько надежно кластерное решение, когда я уменьшаю объем используемых данных (и, возможно, включаемых переменных). Я думаю, что это означает подвыбор данных, а затем создание новой матрицы расстояний и новой дендрограммы каждый раз, когда я что-то корректирую. Один из способов измерения чувствительности кластерного решения состоит в том, чтобы сравнить центроиды кластеров, сделанные с полными данными, и центроиды, созданные с подмножеством данных. Я мог бы сделать это, спроецировав их в пространстве PCoA и рассчитав расстояние между центроидами кластеров (в PCoA space). Это близко к тому, что делает функция betadisper из пакета vegan (кроме того, она вычисляет расстояние точек в кластере до центроида). Однако моя проблема заключается в том, что если я создал разные матрицы расстояний при субсэмплировании, то пространство PCoA будет отличаться между прогонами подвыборки и, следовательно, будет несопоставимым. Можно ли просто стандартизировать пространство PCoA из разных подвыборок, чтобы сделать их сопоставимыми?

Любые указатели или альтернативные подходы будут с благодарностью,

Mark

library(vegan)

# my data has categorial variables so I'll use gower with the iris dataset for example
mydist<-dist(iris[,1:4])
# Pull, out 3 clusters
hc_av<-hclust(d=mydist, method='average')
my_cut<-cutree(hc_av, 3)
# calc distance to cluster centre
mod<-betadisper(mydist, my_cut)
mod
plot(mod)

# randomly remove 5% of data and recalc as above - this would be bootstrapped

mydist2<-dist(iris[sort(sample(1:150, 145)),1:4])
# Pull, out 3 clusters
hc_av2<-hclust(d=mydist2, method='average')
my_cut2<-cutree(hc_av2, 3)
# calc distance to cluster centre
mod2<-betadisper(mydist2, my_cut2)
mod2
par(mfrow=c(1,2))
plot(mod, main='full model'); plot(mod2, main='subset')
# How can I to calculate the distance each cluster centroid has moved when 
subsampling the data relative to the full model?
...