1 votos

¿Por qué hay diferencias entre los métodos aglomerativos de análisis de conglomerados y el conglomerado jerárquico?

Tengo el siguiente conjunto de datos:

 a          b   c   d
  51 163.000000 244 161
  87 225.000000 343  59
  43 124.000000 189 179
  53  89.000000 177 154
  55 116.000000 224 127
  53 116.000000 185  90
  69 123.000000 223  69
  55 127.000000 202 151
  62 108.000000 183 174
  68 104.000000 188 128
  89  46.000000 146  87
  42  46.000000  99  75
  54 141.000000 216 102
  56  99.000000 171  67
  52  79.000000 145 121
  36  70.000000 136  91
  30  91.000000 150 193
  47 115.000000 185 133
  74  85.000000 174 112
  84 145.000000 238 288
  54 127.000000 205  67
  40 158.000000 244  59
  99 104.000000 230  80
  43 102.000000 163  76
  54 108.000000 176 136
  98  77.000000 191 170
  57  92.000000 180  86
  97  80.000000 192  49
  48 164.000000 232 130
  66  81.000000 176  66
  72 132.000000 216 108
  44 126.000000 201 137
  45  99.000000 209  74
  44 117.000000 186  83
  28  67.000000 138 121
  21   0.000001 134 133
  80 133.000000 225  78
  48 156.000000 237 148
  52  71.000000 138 130
  65 100.000000 181  73
  78  84.000000 171 125
  53  81.000000 153  90
  34  80.000000 140 176
  30 140.000000 197 115
  60 198.000000 299  86
  43 132.000000 204  67
  56 111.000000 184  82
  46  58.000000 113 116
  84 128.000000 222 136
  71 136.000000 223 188
  57  57.000000 136 115
  70 123.000000 215  95
  38  91.000000 189  88
  43 108.000000 201  78
  42 149.000000 234 114
  59 101.000000 188 111
  56 133.000000 219 209
  49 119.000000 191 186
  36  81.000000 143  72
  48  72.000000 134 145
  62  67.000000 139 409
  74 172.000000 263 118
  75 142.000000 270 197
  48  67.000000 142 107
  34 191.000000 271  93
  60 104.000000 182  92
  74  71.000000 156  81
  49  72.000000 137  78
 156  87.000000 254  67
  84 108.000000 211  65
  69 104.000000 191  72
  60 132.000000 216 147
  29 134.000000 205 151
  47  90.000000 149 191
  67  94.000000 191 131
  56  95.000000 165 102
  61 112.000000 188  93
  39  92.000000 149 225
  36  47.000000 117 141
  82  55.000000 147  93
  47 128.000000 191 207
  46 101.000000 171 133
  43  68.000000 138 110
  56 122.000000 202 173
  52  68.000000 135  89
  66 127.000000 210 116
  62 151.000000 245 132
  64 147.000000 225  68
  51 134.000000 205 298
  40 140.000000 217 164
  17  66.000000 104 107
  71  61.000000 143  66
  41  34.000000 108 130
  48  74.000000 152  78
  32  72.000000 132 103
  40  42.000000 113 180
  42 108.000000 179 126
  34  71.000000 137  97
  35 105.000000 159  76
  56  77.000000 161 215
  34 134.000000 189  80
  61 125.000000 211  47
  58  79.000000 161  58
  37  95.000000 166 112
  30 152.000000 223 163
  70  76.000000 163  57
  51 112.000000 203  69
  39  67.000000 115 103
  74 134.000000 223  63
  82 162.000000 268 134
  44  71.000000 130 166
  58  99.000000 183  43
  72 233.000000 336 287
  55 161.000000 233 144
  68 138.000000 215  59
  85 132.000000 234  74
  33 109.000000 181  99
  71 105.000000 193  86
  64 133.000000 217  95
  62  92.000000 170  98
  46 107.000000 169 101
  53 101.000000 187  82
  85  97.000000 205 106
  46 124.000000 215  69
  33  91.000000 147  76
  31 138.000000 246 121
  36  68.000000 124 151
  71 106.000000 191 228
  45 167.000000 234 100
  67 105.000000 183  74
  46 189.000000 258  54
  43 122.000000 182 108
  48 108.000000 183  54
  66 103.000000 186 137
  60 109.000000 189  78
  63  95.000000 180  75
  80 118.000000 215  52
  54 142.000000 235 132
  35  63.000000 138 130
  44 126.000000 194  56
  58 149.000000 223  45
  56  73.000000 141  49
  67 108.000000 203 136
  54  67.000000 150  89
  68 189.000000 276 135
  89  42.000000 140 102
  90  73.000000 171 126
  38  98.000000 163  65
  68 118.000000 206 140
  67  61.000000 139  52
  98  69.000000 175  76
  70  87.000000 171  80
  84 107.000000 207  89
  33  61.000000 122 138

Deseo determinar la presencia de racimos en ella (si existen). Para lograrlo, lo primero que hice fue escalar los datos:

scale_data_cast<-scale(data_cast)

entonces utilicé los paquetes "cluster" y "factoextra" en R:

Primero determiné el número de grupos:

library(cluster)
library(factoextra)
fviz_nbclust(scale_data_cast, pam, method = "silhouette")+theme_classic()

Con esto obtuve que había dos grupos. Luego determiné los clusters utilizando el método PAM (paquete factoextra) (utilizando CLARA obtengo los mismos resultados):

pam.res <- pam(scale_data_cast, 2)
print(pam.res)
fviz_cluster(pam.res,
palette = c("#00AFBB", "#FC4E07"), # color palette
ellipse.type = "t", # Concentration ellipse
repel = TRUE, # Avoid label overplotting (slow)
ggtheme = theme_classic()
)

Con este método obtuve que había dos conglomerados: uno presentaba 94 casos y el otro 60.

Ahora utilizando métodos aglomerativos:

res.dist <- dist(scale_data_cast, method = "euclidean")
res.hc <- hclust(d = res.dist, method = "average")
res.coph <- cophenetic(res.hc)
cor(res.dist, res.coph)

Aquí obtengo la correlación entre la distancia cofenética y la distancia original de 0,77. Cuando hago el corte en 2:

grp <- cutree(res.hc, k = 2)
table(grp)

Aquí tengo un grupo con 153 casos y el otro con un caso.

¿Hay realmente grupos en estos datos? ¿Por qué el número de casos es diferente cuando utilizo el clustering aglomerativo en comparación con el método PAM (similar a k-means)?

Gracias de antemano

1voto

vdaubry Puntos 116

Si usted plot(res.hc) se puede ver que el árbol está muy desequilibrado y, por lo tanto, cuando se especifica un corte de dos, uno está haciendo el corte en el primer punto de ramificación. En este caso, el árbol tiene una sola rama en un lado del árbol en la primera ruptura, proporcionando así su segundo resultado.

enter image description here

Compara este gráfico con plot(pam.res, labels=3) donde el método PAM adopta más bien un enfoque medio, por lo que ninguna de las dos agrupaciones se ajusta especialmente bien. A medida que se incrementa el número de clusters con el PAM, éste se asemeja cada vez más al método hclust con más cortes (corte a menor altura).

enter image description here

Los puntos extremos del hclust siguen siendo los puntos extremos del cluster PAM. PAM los fusiona en 2 clusters mientras que el hclust los habría separado en unos 6 o 7 clusters.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X