Tarea 4: Regresión y regularización

IA para Científicos Sociales - UCU

Autor/a

Danilo Freire

Fecha de publicación

15 de abril de 2026

1 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, 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)
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)

2 Exploración

2.1 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?

# Escriban su codigo aqui

Respuesta:

2.2 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?

# Escriban su codigo aqui

Respuesta:

2.3 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?

# Escriban su codigo aqui

Respuesta:

3 Modelo baseline

3.1 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?

# Escriban su codigo aqui

Respuesta:

3.2 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?

# Escriban su codigo aqui

Respuesta:

3.3 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²)?

# Escriban su codigo aqui

Respuesta:

4 LASSO

4.1 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?

# Escriban su codigo aqui

Respuesta:

4.2 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?

# Escriban su codigo aqui

Respuesta:

4.3 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?

# Escriban su codigo aqui

Respuesta:

5 Ridge y Elastic Net

5.1 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é?

# Escriban su codigo aqui

Respuesta:

5.2 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)?

# Escriban su codigo aqui

Respuesta:

6 Comparación

6.1 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²?

# Escriban su codigo aqui

Respuesta:

6.2 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:

Volver arriba