Tarea 1: Clasificación 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 mismo dataset del Laboratorio 1 (indicadores_mundiales.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 indicadores_mundiales.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)

datos <- read_csv("datos/indicadores_mundiales.csv")

datos <- datos |>
  mutate(crecimiento_alto = factor(crecimiento_alto, levels = c("no", "si")))

2 Exploración y preprocesamiento

2.1 Pregunta 1: Resumen por continente

Calculen la media de acceso_internet y inflacion por continente. ¿Qué continente tiene el mayor acceso promedio a internet? ¿Cuál tiene la inflación más alta?

# Escriban su código aquí

Respuesta:

2.2 Pregunta 2: Visualización de distribuciones

Creen un histograma de indice_gobierno_digital usando ggplot2. Agreguen una línea vertical en la mediana con geom_vline(). ¿La distribución es simétrica o sesgada?

# Escriban su código aquí

Respuesta:

2.3 Pregunta 3: Correlaciones

Calculen la matriz de correlaciones entre las 8 variables numéricas. ¿Cuáles dos variables tienen la correlación más alta (en valor absoluto)? ¿Tiene sentido teórico?

# Escriban su código aquí

Respuesta:

3 División y entrenamiento

3.1 Pregunta 4: División estratificada

Dividan los datos en 80% entrenamiento y 20% prueba, con estratificación por crecimiento_alto. Usen set.seed(42). ¿Cuántas observaciones hay en cada conjunto? Verifiquen que las proporciones de "si" y "no" son similares en ambos.

# Escriban su código aquí

Respuesta:

3.2 Pregunta 5: Modelo con un solo predictor

Ajusten una regresión logística que use solo indice_gobierno_digital como predictor. Reporten el coeficiente estimado, su p-valor y el odds ratio. ¿Cómo se interpreta el odds ratio en este caso?

Pista: usen fit(crecimiento_alto ~ indice_gobierno_digital, data = ...).

# Escriban su código aquí

Respuesta:

3.3 Pregunta 6: Modelo completo

Ahora ajusten el modelo completo con los 8 predictores (como en el laboratorio). Comparen la accuracy del modelo con un solo predictor vs. el modelo completo sobre el conjunto de prueba. ¿Cuánto mejora?

# Escriban su código aquí

Respuesta:

4 Evaluación

4.1 Pregunta 7: Matriz de confusión

Usando el modelo completo, generen predicciones sobre el conjunto de prueba y construyan la matriz de confusión. ¿Cuántos falsos positivos y falsos negativos hay? ¿Cuál tipo de error es más frecuente?

# Escriban su código aquí

Respuesta:

4.2 Pregunta 8: Precisión vs. recall

Calculen precisión y recall (con event_level = "second") para el modelo completo. Si este modelo se usara para decidir en qué países invertir (donde un falso positivo significa invertir en un país que no crece), ¿qué métrica priorizarían? Justifiquen.

# Escriban su código aquí

Respuesta:

4.3 Pregunta 9: Efecto del umbral

Calculen precisión y recall para cinco umbrales distintos: 0.2, 0.35, 0.5, 0.65 y 0.8. Presenten los resultados en una tabla. ¿Qué umbral elegirían para el escenario de inversión de la pregunta anterior?

Pista: adapten el código del Ejercicio 5 del laboratorio.

# Escriban su código aquí

Respuesta:

4.4 Pregunta 10: Curva ROC y AUC

Grafiquen la curva ROC y calculen el AUC del modelo completo. Recuerden usar event_level = "second". ¿Consideran que el AUC indica un buen modelo? Justifiquen usando la tabla de referencia del laboratorio.

# Escriban su código aquí

Respuesta:

5 Validación cruzada

5.1 Pregunta 11: Validación cruzada con 10 folds

Realicen validación cruzada con 10 folds (en vez de 5) sobre los datos de entrenamiento. Reporten la accuracy media y su error estándar. ¿Cómo se compara con los resultados de 5 folds del laboratorio?

# Escriban su código aquí

Respuesta:

5.2 Pregunta 12: Modelo reducido

Ajusten un modelo que use solo los 4 predictores con p-valor más bajo en el modelo completo. Comparen su accuracy (validación cruzada, 5 folds) con la del modelo completo. ¿Vale la pena usar los 8 predictores o el modelo reducido es suficiente?

Pista: miren los p-valores de tidy(ajuste) para elegir las variables.

# Escriban su código aquí

Respuesta:

6 Reflexión

6.1 Pregunta 13: Variables sin efecto

En el modelo completo, urbanizacion y gasto_salud no son significativas (p > 0.05). Sin embargo, ambas se correlacionan positivamente con crecimiento_alto en un análisis bivariado simple. Expliquen por qué una variable puede correlacionar con el outcome sin tener un efecto directo en el modelo multivariado. Den un ejemplo hipotético de la vida real.

Respuesta:

Volver arriba