library(tidymodels)
library(tidyverse)
datos <- read_csv("datos/indicadores_mundiales.csv")
datos <- datos |>
mutate(crecimiento_alto = factor(crecimiento_alto, levels = c("no", "si")))Tarea 1: Clasificación con tidymodels
IA para Científicos Sociales - UCU
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:
- Descarguen este archivo
.qmdy el datasetindicadores_mundiales.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 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: