Я применяю иерархическую кластеризацию к своему набору данных, который включает 30 исследований. Пример моего набора данных:
X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
1 2 2 7 7 0 0 0 0 0 0 0 0 0 0 0
2 0 5 37 27 5 1 2 2 2 2 1 1 1 0 0
:
:
30 0 0 3 1 2 5 7 0 0 0 0 0 0 0 0
Я использовал следующий код, чтобы применить версию теста Колмогорова-Сминрова с начальной выборкой для вычисления матрицы расстояний d
и применил алгоритм «полной связи».
p <- outer(1:30, 1:30, Vectorize(function(i,j)
{ks.boot(as.numeric(rep(seq(0,14,1),as.vector(test[i,]))),
as.numeric(rep(seq(0,14,1),as.vector(test[j,]))),nboots=10000)
$ks.boot.pvalue}))
d <- as.dist(as.matrix(1-p))
hc1 <- hclust(d,method = "complete")
plot(hc1)
Это выборка 10 000 (KS) p-значений между каждым исследованием. Итак, для s1 и s2, s1 и s3.... s1 и s30, s2 и s3.... s 29 и s30 и сохраняет вероятности в матрицу 30 x 30.
Если я повторю этот процесс, просто перезапустив код и сохранив p-значения в другой переменной и построив дендрограмму, то я получу немного другую дендрограмму с некоторыми исследованиями, изменяющими положение. Я прикрепил несколько примеров
Некоторые различия очень трудно визуализировать, но немного меняется высота и положение больших скоплений. Меня интересуют два типа неопределенностей: неопределенности из-за начальной выборки, которую пытаются показать дендрограммы.
Второй - неопределенность из-за размера выборки, т. Е. Как размер выборки в исследовании влияет на порядок кластеризации. Я хочу как-то визуализировать это, и мое единственное предположение - удалить исследование и сравнить новую дендрограмму с оригиналом и найти различия вручную, что займет много времени.
Я также проверил пакет pvclust
для иерархической кластеризации, но я не думаю, что он применим, когда я использую загрузку KS.