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)
)Tarea 2: Comparación de modelos con tidymodels
IA para Científicos Sociales - UCU
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:
- Descarguen este archivo
.qmdy el datasetsatisfaccion_democracia.csvde la página del curso, o clonen el repositorio completo congit clone https://github.com/danilofreire/introduccion-ia-ucu.git - 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/
- 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
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 aquiRespuesta:
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 aquiRespuesta:
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 aquiRespuesta:
3 Feature engineering
3.1 Pregunta 4: Crear variables nuevas
Creen tres variables nuevas:
confianza_baja:"si"siconfianza_gobierno <= 4,"no"en caso contrariojoven:"si"siedad < 30,"no"en caso contrarioingreso_x_educacion: el producto deingreso_hogaryeducacion_anos
Muestren las primeras 10 filas de las nuevas variables junto con satisfecho.
# Escriban su codigo aqui3.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 aquiRespuesta:
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 aqui4.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 aquiRespuesta:
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 aquiRespuesta:
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 aquiRespuesta:
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 aquiRespuesta:
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 aqui5.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 aquiRespuesta:
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: