library(tidyverse)
library(cluster)
library(factoextra)
library(corrplot)
set.seed(2026)
mundo <- read_csv("datos/indicadores_mundo.csv", show_col_types = FALSE)Tarea 5: Clustering y PCA
IA para Científicos Sociales - UCU
1 Instrucciones
Esta tarea usa un dataset nuevo, distinto del que vimos en el Laboratorio 5: indicadores_mundo.csv, con 24 países de todas las regiones del mundo y 8 indicadores socioeconómicos. Las técnicas son las mismas del laboratorio (K-means, clustering jerárquico y PCA), pero los datos son otros, así que las respuestas también lo serán. Respondan cada pregunta escribiendo código R en los bloques indicados. Cuando se pida una respuesta escrita, usen texto normal debajo del bloque de código.
Para trabajar en esta tarea:
- Descarguen este archivo
.qmdy el datasetindicadores_mundo.csvde la página del curso, o clonen el repositorio completo congit clone https://github.com/danilofreire/introduccion-ia-ucu.git. Mantengan el CSV en una subcarpetadatos/junto al.qmd - Necesitan Quarto instalado junto con RStudio. Las versiones recientes de RStudio (>= 2022.07) ya incluyen Quarto
- Abran este archivo
.qmden RStudio y ejecuten los bloques de código con Ctrl+Enter (o Cmd+Enter en Mac) - Cuando terminen, pueden renderizar el documento completo con el botón “Render” en RStudio
1.1 Configuración
A diferencia del dataset del laboratorio, este tiene una columna de texto extra: region. Ténganla presente, porque va a aparecer varias veces en la tarea.
2 Exploración
2.1 Pregunta 1: Indicadores por región
Calculen la mediana del PIB per cápita, la esperanza de vida y la mortalidad infantil para cada región. Ordenen el resultado por PIB per cápita. ¿Qué región está mejor en los tres indicadores? ¿Alguna región está bien en un indicador pero mal en otro?
Pista: group_by() + summarise(). Ojo: algunas regiones tienen un solo país.
# Escriban su código aquíRespuesta:
2.2 Pregunta 2: ¿El PIB lo explica todo?
Identifiquen los 5 países con mayor PIB per cápita y los 5 con menor mortalidad infantil. ¿Son los mismos? Busquen al menos un país que esté entre los más ricos pero no entre los de menor mortalidad (o al revés). ¿Qué sugiere eso sobre la relación entre ingreso y salud?
# Escriban su código aquíRespuesta:
2.3 Pregunta 3: Correlaciones
Calculen la matriz de correlaciones de las variables numéricas y visualícenla con corrplot(). ¿Cuál par de variables tiene la correlación positiva más fuerte? ¿Cuál tiene la negativa más fuerte? Hagan además un scatterplot de PIB per cápita contra esperanza de vida: ¿la relación parece lineal o se “aplana” en los países ricos?
Pista: para la matriz hay que quedarse solo con las columnas numéricas (select() ayuda a sacar pais y region).
# Escriban su código aquíRespuesta:
3 K-means
3.1 Pregunta 4: Elegir K con codo y silueta
Preparen los datos: saquen la columna region, muevan pais a los nombres de fila y escalen con scale(). Después calculen, para K=2 a K=6, la suma de cuadrados intra-cluster (WSS) y la silueta promedio. Muestren las dos curvas. ¿Qué K elegirían y por qué? Si el codo y la silueta no coinciden exactamente, expliquen cómo deciden.
Pista: el laboratorio tiene el patrón para las dos curvas; acá la diferencia está en justificar la decisión cuando los criterios no gritan un único ganador.
# Escriban su código aquíRespuesta:
3.2 Pregunta 5: ¿Geografía o nivel de ingreso?
Ajusten K-means con K=3 y nstart = 25 (aunque en la pregunta anterior hayan preferido otro K; así todos seguimos comparables). Crucen el cluster de cada país con su region usando table(). ¿Los clusters agrupan países de la misma región, o agrupan países de distinto continente pero nivel de desarrollo parecido? Den dos ejemplos concretos.
# Escriban su código aquíRespuesta:
3.3 Pregunta 6: Perfil de los clusters
Para la solución K=3, calculen la media de PIB per cápita, esperanza de vida, mortalidad infantil e índice de democracia dentro de cada cluster (con los datos originales, no los escalados). Asignen una etiqueta sustantiva a cada cluster.
# Escriban su código aquíRespuesta:
4 Clustering jerárquico
4.1 Pregunta 7: Dendrograma con Ward
Ajusten un clustering jerárquico con method = "ward.D2" y visualicen el dendrograma. Mirando la altura de las uniones: ¿cuáles son los dos grandes bloques que se unen al final? ¿Qué país parece más “solitario” (se une a su grupo más tarde que el resto)?
# Escriban su código aquíRespuesta:
4.2 Pregunta 8: ¿K-means y jerárquico cuentan la misma historia?
Corten el dendrograma en 3 grupos con cutree() y comparen con los clusters de K-means de la pregunta 5 usando table(). ¿Cuántos países cambian de grupo entre los dos métodos? ¿Cuáles? ¿Les preocupa esa diferencia?
# Escriban su código aquíRespuesta:
5 PCA
5.1 Pregunta 9: ¿Cuántos componentes necesitamos?
Ajusten prcomp() sobre los datos escalados y miren la varianza explicada. ¿Cuánta varianza captura PC1 solo? ¿Cuántos componentes hacen falta para superar el 80% de la varianza acumulada?
# Escriban su código aquíRespuesta:
5.2 Pregunta 10: Interpretar PC1 y PC2
Vean los loadings de los dos primeros componentes (pca$rotation[, 1:2]). ¿Qué variables dominan PC1 y con qué signos? ¿Y PC2? Propongan un nombre sustantivo para cada componente (por ejemplo, “desarrollo”, “desigualdad”, “apertura”). Justifiquen con los loadings.
# Escriban su código aquíRespuesta:
5.3 Pregunta 11: Países extremos
Ordenen los países por su valor en PC1 y luego por PC2. ¿Qué países están en los extremos de cada componente? ¿Los extremos de PC2 confirman la interpretación que propusieron en la pregunta 10?
# Escriban su código aquíRespuesta:
6 Síntesis
6.1 Pregunta 12: ¿Qué pasa si no escalamos?
Repitan K-means con K=3 pero sobre los datos sin escalar (solo saquen region y muevan pais a rownames). Comparen los clusters con los de la pregunta 5. ¿Qué variable domina ahora la solución? Busquen un país que quede agrupado con países muy distintos en democracia o desigualdad, y expliquen por qué terminó ahí.
Pista: miren las unidades de cada variable. ¿Cuál tiene la varianza más grande, por lejos, cuando no escalamos?
# Escriban su código aquíRespuesta:
6.2 Pregunta 13: Reflexión
Basándose en los resultados de esta tarea, respondan:
- Si tuvieran que explicarle los resultados a un periodista con una sola visualización, ¿usarían el dendrograma, el gráfico de clusters o el biplot del PCA? ¿Por qué?
- Los clusters agrupan países por promedios nacionales. Nombren al menos una limitación de usar indicadores a nivel de país para hablar de desarrollo (piensen en la desigualdad interna)
- ¿Qué indicador agregarían al dataset para distinguir mejor a los países de ingreso medio entre sí? Justifiquen
Respuesta: