Clúster Jerárquico

Análisis de Conglomerados Jerárquico

David Martinez Salazar

¿Qué vamos a hacer hoy?

Tenemos las notas de 10 estudiantes en cinco materias.

Vamos a descubrir, sin decírselo a la computadora, qué perfiles de estudiante existen en el salón.

Nota

La técnica se llama análisis de conglomerados: junta lo parecido y separa lo distinto.

Idea clave: nadie le dice a la máquina cuántos grupos hay. Ella los descubre sola → es un método no supervisado.

Dos reglas de oro

Un buen agrupamiento cumple las dos a la vez:

  • Parecidos por dentro: los miembros de un grupo deben ser lo más similares posible entre sí.
  • Distintos por fuera: un grupo y otro deben ser lo más diferentes posible.

Tip

Si dos grupos se parecen demasiado, quizás deberían ser uno solo.

¿Qué tan parecidos somos?

Para agrupar, primero medimos distancias. Mientras más cosas comparten dos personas, más “cerca” están.

Las medidas más comunes:

Medida En palabras simples ¿Cuándo?
Euclídea Distancia en línea recta (la de la regla) La más usada; datos numéricos
Manhattan Diferencias paso a paso, como por cuadras Muchas variables o valores extremos
Mahalanobis Toma en cuenta variables relacionadas Variables correlacionadas

Hoy usamos la euclídea, que es la que aplica R por defecto.

El dendrograma: un árbol que arma grupos

  1. Se mide la distancia entre cada par de estudiantes.
  2. Se juntan los dos más cercanos: primer grupito.
  3. Se recalcula y se unen los siguientes más cercanos.
  4. Se repite hasta unir a todos en un solo grupo.

Importante

La altura a la que se unen dos ramas indica qué tan distintos eran: más alto = más diferentes. Si “cortamos” el árbol, contamos los grupos.

¿Jerárquico o no jerárquico?

Aspecto Jerárquico No jerárquico (k-medias)
¿Decir cuántos grupos al inicio? No, se decide con el árbol Sí, uno elige k
¿Cómo se ve? Un árbol (dendrograma) Probando valores de k
¿Cuántos datos? Pocos Muchos
¿Se deshace una unión? No Sí, reacomoda

Hoy usamos el jerárquico: pocos estudiantes, queremos ver el árbol.

Taller en RStudio

Paso 1 · Cargar los datos

row.names = 1 usa el nombre del estudiante como etiqueta de fila, no como una nota.

Datos <- read.csv("Ejemplo_Estudiantes.csv", row.names = 1)
str(Datos)
'data.frame':   10 obs. of  5 variables:
 $ Matematicas: num  7 7.5 7.6 5 6 7.8 6.3 7.9 6 6.8
 $ Ciencias   : num  6.5 9.4 9.2 6.5 6 9.6 6.4 9.7 6 7.2
 $ Espanol    : num  9.2 7.3 8 6.5 7.8 7.7 8.2 7.5 6.5 8.7
 $ Historia   : num  8.6 7 8 7 8.9 8 9 8 5.5 9
 $ Deportes   : num  8 7 7.5 9 7.3 6.5 7.2 6 8.7 7

Solución 5.1: 10 estudiantes y 5 materias. Todas las notas están en una escala parecida (aproximadamente de 5 a 10), así que en este caso no hace falta estandarizar.

Paso 2 · Medir las distancias

dist() calcula la distancia euclídea entre cada par de estudiantes.

distancias <- dist(Datos)
round(distancias, 2)
       Lucia Pedro Ines Luis Andres  Ana Carlos Jose Sonia
Pedro   3.98                                              
Ines    3.11  1.34                                        
Luis    3.85  4.39 4.42                                   
Andres  1.95  4.21 3.70 3.07                              
Ana     3.89  1.24 1.14 5.11   4.20                       
Carlos  1.52  3.91 3.26 3.44   0.66 3.77                  
Jose    4.28  1.51 1.69 5.45   4.46 0.56   4.05           
Sonia   4.32  4.43 4.77 1.89   3.90 5.36   4.20 5.64      
Maria   1.39  3.36 2.53 4.07   1.73 3.00   1.09 3.30  4.70

Paso 2 · Lectura

Solución 5.2: Las distancias más pequeñas aparecen entre estudiantes con notas parecidas; por ejemplo Pedro, Inés, Ana y José (todos fuertes en Ciencias) quedan muy cerca entre sí. Terminarán en el mismo grupo.

Paso 3 · Armar el árbol

hclust() construye el agrupamiento; ward.D2 forma grupos compactos y parejos.

modelo <- hclust(distancias, method = "ward.D2")
plot(modelo, main = "Dendrograma de estudiantes", xlab = "", sub = "")

Paso 3 · Lectura

Solución 5.3: El árbol sugiere 3 grupos naturales: las ramas se separan a mayor altura en tres bloques claros. Coincide con la intuición de tres perfiles de estudiante.

Paso 4 · Marcar los grupos

k = 3 dibuja tres recuadros sobre el árbol.

plot(modelo, main = "Tres grupos de estudiantes", xlab = "", sub = "")
rect.hclust(modelo, k = 3, border = c("#1F497D", "#C55A11", "#38761D"))

Paso 5 · Ponerle nombre a cada grupo

cutree() dice a qué grupo va cada estudiante; lo pegamos a la tabla.

grupos <- cutree(modelo, k = 3)
Datos$Grupo <- grupos
Datos
       Matematicas Ciencias Espanol Historia Deportes Grupo
Lucia          7.0      6.5     9.2      8.6      8.0     1
Pedro          7.5      9.4     7.3      7.0      7.0     2
Ines           7.6      9.2     8.0      8.0      7.5     2
Luis           5.0      6.5     6.5      7.0      9.0     3
Andres         6.0      6.0     7.8      8.9      7.3     1
Ana            7.8      9.6     7.7      8.0      6.5     2
Carlos         6.3      6.4     8.2      9.0      7.2     1
Jose           7.9      9.7     7.5      8.0      6.0     2
Sonia          6.0      6.0     6.5      5.5      8.7     3
Maria          6.8      7.2     8.7      9.0      7.0     1

Paso 5 · Promedios por grupo

aggregate(. ~ Grupo, data = Datos, FUN = mean)
  Grupo Matematicas Ciencias Espanol Historia Deportes
1     1       6.525    6.525   8.475    8.875    7.375
2     2       7.700    9.475   7.625    7.750    6.750
3     3       5.500    6.250   6.500    6.250    8.850

Solución 5.5 — los tres perfiles:

  • Grupo de Ciencias (Pedro, Inés, Ana, José): Ciencias ≈ 9.5 y Matemáticas altas.
  • Grupo Deportista (Luis, Sonia): Deportes ≈ 8.9, resto más bajo.
  • Grupo de Letras (Lucía, Andrés, Carlos, María): Historia ≈ 8.9 y Español ≈ 8.5 altos.

¿Qué descubrimos?

Solución 5.6: La computadora solo recibió notas, sin etiquetas de “perfil”. Aun así, agrupó a los estudiantes en tres bloques que reconocemos como ciencias, deportes y letras. No inventó los grupos: reveló un patrón que ya estaba en las notas.

Para llevarse a casa

  1. Agrupar es juntar lo parecido y separar lo distinto, midiendo distancias.
  2. El método jerárquico arma un árbol que cortamos a la altura que queramos.
  3. Lo valioso no es solo formar grupos, sino entenderlos y nombrarlos.

Análisis de Conglomerados Jerárquico

BD-165 · Unidad IV