Tarea 2: Comparación de modelos con tidymodels

IA para Científicos Sociales - UCU

Autor/a

Danilo Freire

Fecha de publicación

12 de abril de 2026

1 Instrucciones

Esta tarea usa el dataset del Laboratorio 2 (satisfaccion_democracia.csv). 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:

  1. Descarguen este archivo .qmd y el dataset satisfaccion_democracia.csv de la página del curso, o clonen el repositorio completo con git clone https://github.com/danilofreire/introduccion-ia-ucu.git
  2. Necesitan Quarto instalado junto con RStudio. Las versiones recientes de RStudio (>= 2022.07) ya incluyen Quarto. Si no lo tienen, instálenlo desde https://quarto.org/docs/get-started/
  3. Abran este archivo .qmd en RStudio y ejecuten los bloques de código con Ctrl+Enter (o Cmd+Enter en Mac)
  4. Cuando terminen, pueden renderizar el documento completo con el botón “Render” en RStudio

1.1 Configuración

library(tidymodels)
library(tidyverse)

satisfaccion <- read_csv("datos/satisfaccion_democracia.csv")

satisfaccion <- satisfaccion |>
  mutate(
    satisfecho = factor(satisfecho, levels = c("no", "si")),
    zona = factor(zona),
    genero = factor(genero),
    pais = factor(pais)
  )

2 Exploración

2.1 Pregunta 1: Resumen del dataset

Calculen la proporción de satisfechos ("si") por país. Cuál país tiene la proporción más alta? Cuál tiene la más baja? Muestren los resultados en una tabla ordenada.

# Escriban su codigo aqui

Respuesta:

2.2 Pregunta 2: Confianza y satisfacción

Creen un boxplot que muestre la distribución de confianza_gobierno separada por satisfecho. Agreguen labs() con titulo y etiquetas claras. Qué observan?

# Escriban su codigo aqui

Respuesta:

2.3 Pregunta 3: Correlaciones

Calculen la matriz de correlaciones entre las 4 variables numéricas principales: edad, educacion_anos, ingreso_hogar y confianza_gobierno. Cuáles dos variables tienen la mayor correlación? Es fuerte o débil?

# Escriban su codigo aqui

Respuesta:

3 Feature engineering

3.1 Pregunta 4: Crear variables nuevas

Creen tres variables nuevas:

  • confianza_baja: "si" si confianza_gobierno <= 4, "no" en caso contrario
  • joven: "si" si edad < 30, "no" en caso contrario
  • ingreso_x_educacion: el producto de ingreso_hogar y educacion_anos

Muestren las primeras 10 filas de las nuevas variables junto con satisfecho.

# Escriban su codigo aqui

3.2 Pregunta 5: Explorar las nuevas variables

Calculen la proporción de satisfechos entre personas con confianza baja vs. alta, y entre jovenes vs. no jovenes. Qué variable parece más útil para predecir la satisfacción?

# Escriban su codigo aqui

Respuesta:

4 Modelos

4.1 Pregunta 6: División de datos

Dividan los datos en 75% entrenamiento y 25% prueba con set.seed(42) y estratificación por satisfecho. Verifiquen que las proporciones del outcome son similares en ambos conjuntos.

# Escriban su codigo aqui

4.2 Pregunta 7: Tres modelos con fórmula básica

Definan tres modelos (regresión logística, árbol de decisión y KNN con k=5) y evaluenlos con validación cruzada (5 folds) usando la fórmula: satisfecho ~ edad + educacion_anos + ingreso_hogar + confianza_gobierno + consumo_noticias + participacion_politica + zona. Reporten accuracy para cada uno.

Pista: usen control_resamples(event_level = "second") dentro de fit_resamples().

# Escriban su codigo aqui

Respuesta:

4.3 Pregunta 8: Mejor modelo con fórmula extendida

Ahora evaluen el mejor modelo de la pregunta anterior con una fórmula que agregue confianza_baja y ingreso_x_educacion. Mejora la accuracy? Cuánto?

# Escriban su codigo aqui

Respuesta:

5 Evaluación

5.1 Pregunta 9: Matriz de confusión

Ajusten el modelo logístico con la fórmula básica en los datos de entrenamiento y generen predicciones sobre el conjunto de prueba. Construyan la matriz de confusión. Cuántos errores comete el modelo en total?

# Escriban su codigo aqui

Respuesta:

5.2 Pregunta 10: Precisión, recall y AUC

Calculen precisión, recall y AUC del modelo logístico sobre el conjunto de prueba. Recuerden usar event_level = "second". Es un buen modelo según el AUC?

# Escriban su codigo aqui

Respuesta:

5.3 Pregunta 11: Curva ROC

Grafiquen la curva ROC del modelo logístico. Agreguen un titulo al gráfico con labs().

# Escriban su codigo aqui

5.4 Pregunta 12: Coeficientes del modelo

Extraigan los coeficientes del modelo logístico con tidy() y calculen los odds ratios. Cuál variable tiene el efecto más fuerte? Cuál tiene el efecto más débil? Ordenen por p-valor.

# Escriban su codigo aqui

Respuesta:

6 Reflexion

6.1 Pregunta 13: Árbol vs. logística

Los árboles de decisión y la regresión logística tienen ventajas y desventajas distintas. Basandose en los resultados del laboratorio, discutan en que situaciones preferirían un árbol de decisión sobre una regresión logística, y viceversa. Consideren al menos dos criterios (por ejemplo, interpretabilidad, rendimiento, tipo de datos).

Respuesta:

Volver arriba