IA para Científicos Sociales

Sesión 3.1: Clustering y reducción de dimensionalidad

Danilo Freire

Departament of Data and Decision Sciences
Emory University

Día 3: Texto y aprendizaje no supervisado

Repaso del Día 2

  • Regresión logística: interpretable, produce probabilidades
  • Árboles de decisión: intuitivos pero sobreajustan
  • Random Forest: combina muchos árboles para mejor predicción
  • Predicción vs. explicación: dos objetivos diferentes en ciencias sociales
  • Regularización: LASSO selecciona variables, Ridge reduce coeficientes
  • tidymodels permite comparar modelos con la misma sintaxis

Agenda de la sesión

Primera parte

  • ¿Qué es el aprendizaje no supervisado?
  • Clustering: K-means
  • Elegir el número de clusters
  • Evaluación con silueta
  • Clustering jerárquico (intro)

Segunda parte

  • Reducción de dimensionalidad: PCA
  • Interpretación de componentes
  • ¿Cuántos componentes conservar?
  • Aplicaciones en América Latina
  • Comparación con otros métodos

¿Qué es el aprendizaje no supervisado?

Aprender sin etiquetas

  • En aprendizaje supervisado, teníamos respuestas correctas (etiquetas)
  • En aprendizaje no supervisado, no hay etiquetas
  • El modelo debe descubrir patrones ocultos en los datos por sí mismo
  • ¿Por qué usarlo?
    • Las etiquetas son costosas (requieren expertos)
    • A veces las etiquetas no existen (“¿cuántos tipos de votantes hay?”)
    • Exploración: entender los datos antes de modelar
  • Dos técnicas principales:
    • Clustering: agrupar observaciones similares
    • Reducción de dimensionalidad: simplificar datos con muchas variables

El aprendizaje no supervisado descubre estructura

K-means

¿Qué es K-means?

  • K-means: el algoritmo de clustering más popular
  • Particiona los datos en K grupos (clusters)
  • Los puntos dentro del mismo cluster son similares entre sí
  • Los puntos en clusters diferentes son disimilares
  • ¿Cómo funciona?
    1. Elegir K centros aleatoriamente
    2. Asignar cada punto al centro más cercano
    3. Mover cada centro al promedio de sus puntos asignados
    4. Repetir pasos 2-3 hasta que los centros no se muevan
  • Simple, rápido y funciona bien en muchos casos

K-means en acción

Fuente: Machine Learning CoBan

¿Cómo elegir K?

  • El usuario debe elegir el número de clusters (K) de antemano
  • No existe un K “correcto” en general
  • Métodos para orientarse:
    • Método del codo: graficar la suma de distancias internas para diferentes K, buscar el “codo” donde la mejora se estabiliza
    • Silueta: mide qué tan bien cada punto encaja en su cluster. Valores altos (cercanos a 1) son buenos
    • Conocimiento del dominio: ¿cuántos grupos tienen sentido teóricamente?
  • En ciencias sociales, el contexto teórico suele ser más importante que las métricas estadísticas
  • Ejemplo: ¿cuántos “tipos” de regímenes políticos hay? ¿3? ¿5? ¿7? Depende de la teoría

Método del codo

Suma de distancias internas
  │
  │\
  │ \
  │  \
  │   \
  │    \.___.___.___  ← "codo" en K=3
  │
  └──────────────────▶
    K=1  2  3  4  5  6

Se elige el K donde la curva “se aplana”: agregar más clusters ya no mejora mucho.

Limitaciones de K-means

Supuestos que hace

  • Los clusters son esféricos (todos del mismo tamaño)
  • Cada punto pertenece a un solo cluster
  • Sensible a la escala de las variables (siempre normalizar antes)
  • Sensible a los valores iniciales (ejecutar varias veces)

Aplicaciones en ciencias sociales

  • Segmentación de países: agrupar países por indicadores de desarrollo
  • Tipología de votantes: identificar perfiles electorales
  • Clasificación de municipios: agrupar por características socioeconómicas
  • Análisis de encuestas: encontrar grupos de respuesta similares

K-means es un punto de partida, no el final. Sirve para explorar los datos y generar hipótesis, no para confirmar teorías causales.

PCA: Reducción de dimensionalidad

¿Qué es PCA?

  • PCA (Principal Component Analysis / Análisis de Componentes Principales)
  • Problema: tenemos muchas variables y queremos simplificar
  • PCA busca las direcciones de máxima variación en los datos
  • Crea nuevas variables (componentes principales) que son combinaciones lineales de las originales
  • Primer componente: la dirección con más varianza
  • Segundo componente: la siguiente dirección con más varianza, perpendicular al primero
  • Y así sucesivamente
  • Permite visualizar datos de alta dimensión en 2D o 3D

PCA: encontrar las direcciones de máxima varianza

Fuente: Vizuara

¿Para qué sirve PCA en ciencias sociales?

  • Visualización: reducir 8 variables a 2 dimensiones para graficar
  • Construcción de índices: combinar muchos indicadores en uno solo
    • Ejemplo: el Índice de Desarrollo Humano (IDH) combina esperanza de vida, educación e ingreso en un solo número, que es la misma idea de PCA (aunque el IDH usa una media geométrica, no componentes principales)
  • Preprocesamiento: reducir la dimensionalidad antes de aplicar otro modelo (como K-means o regresión)
  • Detección de patrones: ver qué variables “van juntas”
    • Si el primer componente carga fuertemente en PIB, educación e internet, lo podemos interpretar como un “eje de desarrollo”

Fuente: Medium

PCA: lo que hay que recordar

Ventajas

  • Reduce la dimensionalidad preservando la mayor varianza posible
  • Ayuda a visualizar datos complejos
  • Puede revelar estructura latente
  • Los componentes son no correlacionados entre sí (ortogonales, es decir, su correlación es cero)
  • No necesita etiquetas

Limitaciones

  • Solo captura relaciones lineales
  • Los componentes son difíciles de interpretar (son combinaciones de muchas variables)
  • Sensible a la escala: siempre normalizar antes
  • No es un modelo causal: no dice por qué las variables están correlacionadas
  • ¿Cuántos componentes conservar? Regla general: los que explican ~80% de la varianza

Evaluación de clusters

Coeficiente de silueta

  • El coeficiente de silueta mide qué tan bien cada observación encaja en su cluster
  • Para cada punto \(i\):
    • \(a(i)\) = distancia promedio a otros puntos del mismo cluster
    • \(b(i)\) = distancia promedio al cluster más cercano diferente

\[s(i) = \frac{b(i) - a(i)}{\max(a(i), b(i))}\]

  • Valores de \(s(i)\):
    • Cerca de +1: el punto está bien clasificado
    • Cerca de 0: el punto está en el borde entre clusters
    • Cerca de -1: el punto probablemente está en el cluster equivocado

Interpretación del promedio de silueta:

Valor Interpretación
0.71 - 1.00 Estructura fuerte
0.51 - 0.70 Estructura razonable
0.26 - 0.50 Estructura débil
< 0.25 Sin estructura clara


Podemos usar la silueta promedio para elegir K: el K con mayor silueta indica clusters mejor definidos.

Método de la silueta para elegir K

  • Calcular la silueta promedio para cada valor de K
  • Elegir el K que maximice la silueta
  • Más informativo que el método del codo porque mide calidad de los clusters, no solo compacidad
  • Combinar con:
    • Conocimiento del dominio: ¿tiene sentido este número de grupos?
    • Interpretabilidad: ¿podemos explicar qué distingue cada cluster?

Ejemplo

Silueta promedio por K:

K=2:  0.52
K=3:  0.58  ← máximo
K=4:  0.51
K=5:  0.44
K=6:  0.38

La silueta sugiere K=3.
El método del codo podría
sugerir otro valor.

Usar ambos + teoría para decidir.

K-means en R: ejemplo básico

library(tidyverse)
library(cluster)  # Para silhouette()

# Escalar los datos (siempre antes de K-means)
datos_scaled <- datos |>
  select(where(is.numeric)) |>
  scale()

# Ejecutar K-means
set.seed(2026)
km <- kmeans(datos_scaled, centers = 3, nstart = 25)

# Ver asignaciones
km$cluster

# Calcular silueta
sil <- silhouette(km$cluster, dist(datos_scaled))
mean(sil[, 3])  # Silueta promedio

# Visualizar
fviz_cluster(km, data = datos_scaled)  # Con factoextra
  • nstart = 25 ejecuta el algoritmo 25 veces con diferentes inicializaciones

Clustering jerárquico

¿Qué es el clustering jerárquico?

  • Clustering jerárquico: crea una jerarquía de clusters anidados
  • No requiere especificar K de antemano
  • Dos enfoques:
    • Aglomerativo (bottom-up): empieza con cada punto como cluster, va fusionando los más cercanos
    • Divisivo (top-down): empieza con todos los puntos en un cluster, va dividiendo
  • El resultado se visualiza como un dendrograma
  • El usuario “corta” el dendrograma al nivel deseado para obtener K clusters

Dendrograma

        ┌────────────────┐
        │    Todos       │ Altura
        ├───────┬────────┤ alta
        │       │        │
    ┌───┤   ┌───┴───┐    │
    │   │   │       │    │
  ┌─┴─┐ │ ┌─┴─┐   ┌─┴─┐  │
  A   B C D   E   F   G  │ Altura
                         │ baja

Si cortamos a altura media:
Cluster 1: {A, B}
Cluster 2: {C}
Cluster 3: {D, E}
Cluster 4: {F, G}

Métodos de enlace (linkage)

Método Distancia entre clusters Características
Single (mínimo) Puntos más cercanos Puede crear cadenas largas
Complete (máximo) Puntos más lejanos Clusters compactos
Average (promedio) Promedio de todas las distancias Balance entre ambos
Ward Minimiza varianza interna Similar a K-means, muy usado


  • Ward es el más usado en ciencias sociales porque tiende a crear clusters de tamaño similar
  • En R: hclust(dist(datos), method = "ward.D2")

Clustering jerárquico en R

# Calcular matriz de distancias
d <- dist(datos_scaled, method = "euclidean")

# Clustering jerárquico con método Ward
hc <- hclust(d, method = "ward.D2")

# Visualizar dendrograma
plot(hc, hang = -1, cex = 0.8)

# Cortar para obtener K clusters
grupos <- cutree(hc, k = 3)

# O cortar a cierta altura
grupos <- cutree(hc, h = 5)

# Agregar al dataframe
datos$cluster <- factor(grupos)

K-means vs. Jerárquico

Criterio K-means Jerárquico
Elegir K Antes de ejecutar Después (cortando)
Forma de clusters Esféricos Cualquier forma
Escalabilidad Muy rápido Lento para n grande
Reproducibilidad Depende de inicialización Determinístico
Visualización Scatter plot Dendrograma
Jerarquía No Sí (anidamiento)


  • Use K-means para datasets grandes cuando tiene una idea del número de grupos
  • Use jerárquico para explorar la estructura de los datos y visualizar relaciones entre observaciones

Más sobre PCA

¿Cuántos componentes conservar?

  • PCA produce tantos componentes como variables originales
  • Pero queremos conservar solo los primeros (los más informativos)
  • Criterios para elegir:
    • Varianza explicada acumulada: conservar los que expliquen ~80%
    • Método del codo (scree plot): buscar el “codo” donde la varianza adicional es pequeña
    • Regla de Kaiser: conservar componentes con eigenvalue > 1
  • En la práctica, si el objetivo es visualización, usamos 2-3 componentes

Scree plot

Varianza explicada (%)
  50│ ■
    │
  30│   ■
    │
  15│     ■
    │       ■
   5│         ■  ■  ■  ■
    └─────────────────────
       PC1 PC2 PC3 PC4 ...

El "codo" está en PC3:
conservamos PC1-PC3 (~95% varianza).
PC4 en adelante agregan poco.

Interpretación de los loadings

  • Los loadings (cargas) indican cuánto contribuye cada variable a cada componente
  • Valores absolutos altos = variable importante para ese componente
  • El signo indica la dirección:
    • Si PIB y educación tienen loadings positivos altos en PC1 → PC1 mide “desarrollo”
    • Un país con PC1 alto tiene alto PIB Y alta educación
  • Loadings cercanos a cero = variable no relevante para ese componente

Ejemplo de loadings

           PC1     PC2
PIB       0.45   -0.12
educación 0.42    0.08
salud     0.38    0.15
internet  0.40   -0.05
desigualdad -0.35  0.62
rural    -0.28    0.55

PC1 = "desarrollo general"
(PIB, educación, salud, internet
 cargan positivo)

PC2 = "ruralidad/desigualdad"
(desigualdad y rural cargan positivo)

Biplot: visualización combinada

  • Un biplot muestra simultáneamente:
    • Las observaciones (como puntos)
    • Las variables (como flechas/vectores)
  • La dirección de las flechas indica cómo las variables contribuyen a cada componente
  • Flechas largas = variables con alta varianza
  • Flechas cercanas = variables correlacionadas
  • Observaciones en la dirección de una flecha tienen valores altos en esa variable

En R:

# Ejecutar PCA
pca <- prcomp(datos_scaled)

# Biplot básico
biplot(pca)

# Con factoextra (más bonito)
library(factoextra)
fviz_pca_biplot(pca,
  repel = TRUE,
  col.var = "contrib",
  col.ind = "cos2"
)

Aplicaciones en ciencias sociales

Ejemplo: Tipología de países latinoamericanos

El problema:

  • Tenemos 18 países con 8 indicadores cada uno
  • ¿Existen “tipos” de países según su perfil de desarrollo?
  • ¿Qué dimensiones latentes resumen mejor la variación?

Enfoque:

  1. Escalar todas las variables
  2. K-means para encontrar grupos
  3. PCA para visualizar en 2D
  4. Interpretar los clusters y componentes

Posibles hallazgos:

Cluster 1: "Alto desarrollo"
- Uruguay, Chile, Costa Rica
- Alto PIB, educación, internet

Cluster 2: "Desarrollo medio"
- México, Brasil, Colombia
- Industrializados pero desiguales

Cluster 3: "En desarrollo"
- Honduras, Nicaragua, Bolivia
- Más rurales, menor PIB

PC1 captura "desarrollo general"
PC2 captura "desigualdad/ruralidad"

Ejemplo: Segmentación de votantes

El problema:

  • Encuesta con 1000 respondentes y 20 preguntas de opinión
  • ¿Existen “tipos” de votantes con perfiles similares?
  • ¿Qué dimensiones ideológicas estructuran las opiniones?

Enfoque:

  1. PCA para reducir las 20 preguntas a 2-3 dimensiones
  2. Interpretar: ¿PC1 es izquierda-derecha? ¿PC2 es autoritarismo-libertad?
  3. K-means en el espacio reducido para encontrar grupos
  4. Caracterizar cada grupo por sus respuestas típicas

Aplicaciones reales:

  • Latinobarómetro: tipologías de opinión pública
  • LAPOP: perfiles de apoyo democrático
  • Encuestas electorales: segmentos de votantes
  • Análisis de partidos: posiciones ideológicas


Estas técnicas son exploratorias. Generan hipótesis sobre cómo se estructuran las opiniones, no confirman teorías causales.

Otras aplicaciones en América Latina

Clustering:

  • Segmentación de municipios por indicadores socioeconómicos
  • Clasificación de conflictos por características
  • Tipología de movimientos sociales
  • Agrupación de respuestas abiertas en encuestas

PCA:

  • Índices compuestos de desarrollo, gobernanza, calidad institucional
  • Mapas ideológicos de partidos políticos
  • Análisis de encuestas con muchas preguntas
  • Preprocesamiento antes de regresión cuando hay multicolinealidad


En el laboratorio (Sesión 3.3) aplicaremos estas técnicas a datos reales de países latinoamericanos.

Resumen de la sesión

Clustering:

  • K-means: rápido, asume clusters esféricos, requiere elegir K
  • Jerárquico: produce dendrograma, no requiere K de antemano
  • Silueta: mide calidad de los clusters
  • Escalar siempre antes de aplicar

PCA:

  • Reduce dimensionalidad preservando varianza
  • Los loadings indican qué variables contribuyen a cada componente
  • Scree plot ayuda a elegir cuántos componentes conservar
  • Biplot visualiza observaciones y variables juntas


Son herramientas de exploración: generan hipótesis, no las confirman.

Próximos pasos

  • Sesión 3.2: Análisis computacional de texto
    • Tokenización y preprocesamiento
    • TF-IDF y bag-of-words
    • Topic Modeling (LDA)
    • Introducción a embeddings
  • Laboratorios (3.3 y 3.4):
    • Clustering y PCA con datos de países
    • Análisis de textos políticos latinoamericanos

Nos vemos en la próxima sesión.

Nos vemos en la sesión de análisis de texto