Sto facendo il clustering gerarchico con un pacchetto R chiamato pvclust
, che si basa su hclust
incorporando il bootstrap per calcolare i livelli di significatività per i cluster ottenuti.Errore con clustering gerarchico multiscala in R
Considerate i seguenti dati impostati con 3 dimensioni e 10 osservazioni:
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)))
Quando uso hclust
sola, il raggruppamento funziona bene sia misure euclidee e misure di correlazione:
# 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")
Tuttavia, quando si utilizza ciascuna configurazione con pvclust
, come segue:
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)
... ottengo i seguenti errori:
- euclidea:
Error in hclust(distance, method = method.hclust) : must have n >= 2 objects to cluster
- Correlazione:
Error in cor(x, method = "pearson", use = use.cor) : supply both 'x' and 'y' or a matrix-like 'x'
.
Si noti che la distanza viene calcolata da pvclust
quindi non è necessario un calcolo della distanza in anticipo. Si noti inoltre che il metodo hclust
(media, mediana, ecc.) Non influisce sul problema.
Quando si aumenta la dimensionalità del set di dati su 4, pvclust
ora funziona correttamente. Perché ho ricevuto questi errori per pvclust
in 3 dimensioni e in basso ma non per hclust
? Inoltre, perché gli errori scompaiono quando utilizzo un set di dati superiore a 4 dimensioni?
Questo è eccellente. Cambiare 'r' fa il trucco. Grazie. – oisyutat