--- title: "Tarea 4: Regresión y regularización" subtitle: "IA para Científicos Sociales - UCU" author: "Danilo Freire" date: "2026-04-15" format: html: toc: true toc-depth: 2 number-sections: true code-fold: false lang: es engine: knitr --- ## Instrucciones Esta tarea usa el mismo dataset del Laboratorio 4 (`latinobarometro_sim.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 `latinobarometro_sim.csv` de la [página del curso](https://danilofreire.github.io/introduccion-ia-ucu/laboratorios.html), o clonen el repositorio completo con `git clone https://github.com/danilofreire/introduccion-ia-ucu.git` 2. Necesitan [Quarto](https://quarto.org/docs/get-started/) instalado junto con RStudio. Las versiones recientes de RStudio (>= 2022.07) ya incluyen Quarto. Si no lo tienen, instálenlo desde 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 ### Configuración ```{r setup, message=FALSE, warning=FALSE} library(tidymodels) library(tidyverse) library(glmnet) datos <- read_csv("datos/latinobarometro_sim.csv", show_col_types = FALSE) datos <- datos |> mutate( pais = factor(pais), zona = factor(zona), genero = factor(genero), uso_internet = factor(uso_internet, levels = c("nunca", "semanal", "diario")) ) set.seed(2026) ``` ## Exploración ### Pregunta 1: Resumen del dataset Calculen la media y desviación estándar de `satisfaccion_vida` por país. Ordenen los resultados de mayor a menor media. Cuál país tiene la mayor satisfacción promedio? Cuál tiene la menor? ```{r p1} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 2: Correlaciones con la variable objetivo Calculen la correlación entre `satisfaccion_vida` y todas las variables numéricas del dataset (`edad`, `educacion_anios`, `ingreso_hogar`, `confianza_gobierno`, `confianza_justicia`, `satisfaccion_democracia`, `percepcion_economia`, `interes_politica`). Cuáles dos variables tienen la mayor correlación con la satisfacción? Son positivas o negativas? ```{r p2} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 3: Distribución por zona Creen un boxplot que muestre la distribución de `satisfaccion_vida` separada por `zona` (urbana/rural). Agreguen `labs()` con titulo y etiquetas claras. Hay diferencia entre zonas? ```{r p3} # Escriban su codigo aqui ``` **Respuesta:** ## Modelo baseline ### Pregunta 4: División de datos y receta Dividan los datos en 75% entrenamiento y 25% prueba con `set.seed(2026)`. Creen una receta que: (a) excluya `voto` y `pais`, (b) convierta las variables categóricas en dummies, (c) normalice los predictores numéricos, y (d) elimine predictores con varianza cero. Cuántos predictores tiene la receta preparada? ```{r p4} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 5: Modelo OLS Ajusten un modelo de regresión lineal (OLS) con `linear_reg()` usando la receta de la pregunta 4. Extraigan los coeficientes con `tidy()` y ordénenlos por valor absoluto. Cuál es el predictor más importante? Cuál es el menos importante? ```{r p5} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 6: Evaluar OLS Generen predicciones del modelo OLS en el conjunto de prueba y calculen RMSE, R² y MAE con `metrics()`. Qué porcentaje de la variación en satisfacción explica el modelo (R²)? ```{r p6} # Escriban su codigo aqui ``` **Respuesta:** ## LASSO ### Pregunta 7: Tuning de LASSO Definan un modelo LASSO (`mixture = 1`) con `penalty = tune()`. Creen una grilla de 30 valores de lambda entre 10^-4 y 10^0. Usen validación cruzada con 10 folds para encontrar el lambda óptimo. Cuál es el mejor lambda según RMSE? ```{r p7} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 8: Lambda mínimo vs. 1SE Comparen el lambda que minimiza el RMSE (`select_best()`) con el lambda 1SE (`select_by_one_std_err()`). Cuál es más grande? Cuántas veces más grande? Qué implica usar el lambda 1SE para la complejidad del modelo? ```{r p8} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 9: Variables eliminadas por LASSO Ajusten el modelo LASSO final con el lambda mínimo. Cuántas variables elimina LASSO (coeficiente = 0)? Cuáles son? Por qué creen que LASSO las considera poco útiles? ```{r p9} # Escriban su codigo aqui ``` **Respuesta:** ## Ridge y Elastic Net ### Pregunta 10: Comparar coeficientes Ridge vs. LASSO Ajusten un modelo Ridge (`mixture = 0`) con tuning de lambda usando la misma grilla y los mismos folds. Comparen los coeficientes de Ridge con los de LASSO. Cuál de los dos tiene coeficientes más grandes en promedio? Por qué? ```{r p10} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 11: Elastic Net con dos hiperparámetros Ajusten un Elastic Net con tuning de `penalty` y `mixture`. Usen una grilla de 15 lambdas y 5 valores de mixture. Cuál es la mejor combinación? El mixture óptimo se acerca más a LASSO (1) o a Ridge (0)? ```{r p11} # Escriban su codigo aqui ``` **Respuesta:** ## Comparación ### Pregunta 12: Tabla comparativa Generen predicciones en el conjunto de prueba para OLS, LASSO, Ridge, Elastic Net y Random Forest (con `trees = 500`, `mtry = tune()`, `min_n = tune()`). Combinen las métricas en una tabla y ordénenla por RMSE. Cuál modelo tiene el mejor RMSE? Cuál tiene el mejor R²? ```{r p12} # Escriban su codigo aqui ``` **Respuesta:** ### Pregunta 13: Reflexión Basandose en los resultados de esta tarea, respondan: 1. En este dataset, la regularización mejora mucho respecto a OLS? Por qué sí o por qué no? 2. En qué situaciones sería más útil LASSO que Ridge? Y viceversa? 3. Si tuvieran que presentar resultados a un tomador de decisiones que no sabe estadística, cuál modelo elegirían y por qué? **Respuesta:**