Robię hierarchiczne grupowanie z pakietem R o nazwie pvclust
, który opiera się na hclust
przez włączenie ładowania początkowego w celu obliczenia poziomów istotności dla otrzymanych klastrów.Błąd w hierarchicznym grupowaniu wielościennym w R
Rozważmy następujący zestaw danych z 3 wymiarach i 10 Uwagi:
mat <- as.matrix(data.frame("A"=c(9000,2,238),"B"=c(10000,6,224),"C"=c(1001,3,259),
"D"=c(9580,94,51),"E"=c(9328,5,248),"F"=c(10000,100,50),
"G"=c(1020,2,240),"H"=c(1012,3,260),"I"=c(1012,3,260),
"J"=c(984,98,49)))
Gdy używam hclust
sam, grupowanie działa dobrze dla obu środków euklidesowych i środków Korelacja:
# euclidean-based distance
dist1 <- dist(t(mat),method="euclidean")
mat.cl1 <- hclust(dist1,method="average")
# correlation-based distance
dist2 <- as.dist(1 - cor(mat))
mat.cl2 <- hclust(dist2, method="average")
jednak podczas korzystania z każdej konfiguracji z pvclust
, jak następuje:
library(pvclust)
# euclidean-based distance
mat.pcl1 <- pvclust(mat, method.hclust="average", method.dist="euclidean", nboot=1000)
# correlation-based distance
mat.pcl2 <- pvclust(mat, method.hclust="average", method.dist="correlation", nboot=1000)
... otrzymuję następujące błędy:
- euklidesowej:
Error in hclust(distance, method = method.hclust) : must have n >= 2 objects to cluster
- Korelacja:
Error in cor(x, method = "pearson", use = use.cor) : supply both 'x' and 'y' or a matrix-like 'x'
.
Należy pamiętać, że odległość jest obliczana przez pvclust
więc nie ma potrzeby obliczania odległości wcześniej. Zauważ też, że metoda hclust
(średnia, mediana itp.) Nie ma wpływu na problem.
Gdy zwiększam wymiarowość zestawu danych do 4, pvclust
teraz działa poprawnie. Dlaczego otrzymuję te błędy dla pvclust
w 3 wymiarach i poniżej, ale nie dla hclust
? Co więcej, dlaczego błędy znikają, gdy używam zestawu danych powyżej 4 wymiarów?
To jest doskonałe. Zmiana 'r' działa. dzięki. – oisyutat