library(haven)
library(tidyverse)Práctico 3: Construcción y Combinación de Datos: Un Análisis de Bienestar Adolescente con la ELPI
Trabajando con la Encuesta Longitudinal de Primera Infancia (ELPI) Cuarta Ronda 2024
0. Objetivos del Práctico
El objetivo de este práctico es aplicar las técnicas avanzadas de manipulación de datos vistas en clase. Al finalizar, serás capaz de:
- Manejar un proyecto con múltiples bases de datos en formato R.
- Aplicar
left_join()para combinar información de diferentes fuentes (responsable principal y adolescente). - Realizar recodificaciones complejas usando
case_when()para crear una tipología. - Construir un índice sumativo a partir de múltiples indicadores de satisfacción.
- Aplicar un flujo de trabajo completo para limpiar, preparar y analizar los datos, respondiendo a una pregunta de investigación.
1. Contexto: La Encuesta Longitudinal de Primera Infancia (ELPI)
La Encuesta Longitudinal de Primera Infancia (ELPI) es un estudio a nivel nacional que sigue a una cohorte de niños y niñas desde su nacimiento para monitorear su desarrollo en el tiempo. Es una herramienta fundamental para el diseño y evaluación de políticas públicas en el área de la niñez en Chile.
En su Cuarta Ronda (2024), los participantes originales tienen entre 14 y 18 años. La ELPI recolecta información a través de distintos instrumentos aplicados a diferentes informantes. Hoy trabajaremos con dos:
- La base del Responsable Principal (RP), que contiene información socioeconómica detallada del hogar y características generales de cada miembro.
- La base de Adolescentes, que contiene las respuestas del cuestionario auto-aplicado por los jóvenes de 14 a 18 años, incluyendo un módulo de satisfacción con distintos ámbitos de su vida.
Nuestro primer desafío será unir estas dos fuentes para analizar cómo las características del hogar se relacionan con el bienestar subjetivo de los adolescentes.
2. Preparación del Entorno y Carga de Datos
2.1 Proyectos de RStudio y Rutas Relativas (Recordatorio)
Un flujo de trabajo reproducible comienza con una buena organización. La herramienta clave es el Proyecto de RStudio (.Rproj): agrupa todos los archivos de una investigación (datos, scripts, informes) en una sola carpeta y fija ahí la raíz del directorio de trabajo.
Esto nos permite usar rutas relativas (ej. "datos/mis_datos.rds") en lugar de rutas absolutas (ej. "C:/Users/Gabriel/Desktop/datos/mis_datos.rds"), lo que asegura que el código funcione en cualquier computador sin modificaciones.
Acción: Antes de continuar, asegúrate de estar trabajando dentro de un Proyecto de RStudio.
2.2 Descarga de Datos
Descarga ambas bases desde el sitio del Observatorio Social del Ministerio de Desarrollo Social y Familia y guárdalas en una carpeta datos dentro de tu proyecto:
- Base del Responsable Principal (formato
.rds) - Base de Adolescentes (formato
.rds)
2.4 Carga de Paquetes
Cargamos los paquetes que usaremos hoy.
2.5 Carga de las Bases de Datos
Las bases están disponibles en el sitio del Observatorio Social. Descarga ambos archivos y guárdalos en tu carpeta datos. Luego cárgalos así:
# Cargar la base del Responsable Principal
elpicp <- readRDS("datos/Base responsable principal R.rds")
# Cargar la base de Adolescentes
elpiadol <- readRDS("datos/Base adolescentes R.rds")3. Limpieza y Preparación de las Bases (Por Separado)
Antes de unir las tablas, debemos prepararlas para que contengan solo la información que necesitamos.
3.1 Base del Responsable Principal (elpicp)
Esta base contiene información de todos los miembros del hogar. La variable tipo_persona nos indica el rol de cada persona en el estudio. Filtramos por tipo_persona == 1 para quedarnos solo con el adolescente ELPI (el joven de 14–18 años que es el sujeto de seguimiento de la encuesta).
elpicp_limpia <- elpicp %>%
# 1. Filtramos para quedarnos solo con el adolescente ELPI de cada hogar
filter(tipo_persona == 1) %>%
# 2. Seleccionamos el identificador del hogar, la región y el quintil de ingresos
select(folio, cod_region, qaut_casen)
# Verificamos las dimensiones de nuestra base limpia
dim(elpicp_limpia)[1] 10003 3
Interpretación: Nuestra base del Responsable Principal ahora tiene 10003 filas, una por cada adolescente ELPI del estudio, y 3 columnas con la información socioeconómica que necesitamos.
3.2 Base de Adolescentes (elpiadol)
Esta base contiene las respuestas directas de los adolescentes. Nos interesan especialmente las variables d3_1 a d3_7, que miden la satisfacción con distintos ámbitos de la vida en una escala de 1 (nada satisfecho) a 7 (muy satisfecho). En esta ronda, todos los adolescentes (14–18 años) respondieron este módulo, por lo que no es necesario filtrar por edad.
elpiadol_limpia <- elpiadol %>%
# Seleccionamos el identificador y las 7 preguntas de satisfacción, renombrándolas
select(folio,
satisf_familia = d3_1,
satisf_amigos = d3_2,
satisf_colegio = d3_3,
satisf_contigo = d3_4,
satisf_barrio = d3_5,
satisf_vida = d3_6,
satisf_cuerpo = d3_7)
# Vemos un resumen para verificar la limpieza
summary(elpiadol_limpia) folio satisf_familia satisf_amigos satisf_colegio
Min. :100011 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:171816 1st Qu.:6.000 1st Qu.:5.000 1st Qu.:5.000
Median :236831 Median :7.000 Median :6.000 Median :6.000
Mean :244076 Mean :6.124 Mean :5.906 Mean :5.374
3rd Qu.:322726 3rd Qu.:7.000 3rd Qu.:7.000 3rd Qu.:6.000
Max. :399921 Max. :7.000 Max. :7.000 Max. :7.000
NA's :7 NA's :7 NA's :442
satisf_contigo satisf_barrio satisf_vida satisf_cuerpo
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:4.000 1st Qu.:5.000 1st Qu.:5.000 1st Qu.:4.000
Median :5.000 Median :6.000 Median :6.000 Median :5.000
Mean :5.104 Mean :5.673 Mean :5.648 Mean :4.737
3rd Qu.:6.000 3rd Qu.:7.000 3rd Qu.:7.000 3rd Qu.:6.000
Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
NA's :7 NA's :7 NA's :7 NA's :7
Interpretación: El resumen nos muestra las distribuciones de cada variable de satisfacción. La escala va de 1 a 7, y la mayoría de los adolescentes se concentra en los valores altos, lo que indica niveles generales de satisfacción elevados.
4. Combinando las Bases con left_join() (Paso Central)
Ahora que tenemos nuestras dos tablas limpias, las uniremos. La variable llave que conecta ambas tablas es folio, el identificador único del hogar.
# Unimos las dos bases de datos.
# La tabla del RP es la "izquierda" (la principal), y le "pegamos" las respuestas de los adolescentes.
elpi_completa <- left_join(elpicp_limpia, elpiadol_limpia, by = "folio")
# Verificamos el resultado
head(elpi_completa)dim(elpi_completa)[1] 10003 10
Interpretación: La base unificada elpi_completa tiene 10003 filas y 10 columnas. Cada fila corresponde a un adolescente con su información socioeconómica (región, quintil) y sus respuestas de bienestar subjetivo.
Actividad 1: Antes de continuar, calcula el promedio de satisf_vida y satisf_barrio separadamente para adolescentes de la Región Metropolitana (cod_region == 13) versus el resto del país. ¿Observas diferencias entre regiones para estos dos ámbitos?
# Escribe tu código aquí5. Construcción de Nuevas Variables
Con nuestra base unificada, podemos crear las variables que necesitamos para nuestro análisis.
5.1 Construcción de un Índice de Bienestar Subjetivo
Objetivo: Crear un puntaje global de satisfacción con la vida promediando las 7 preguntas del módulo de bienestar de la ELPI 2024.
elpi_completa <- elpi_completa %>%
mutate(
# Promediamos las 7 variables de satisfacción (escala 1-7)
indice_bienestar = (satisf_familia + satisf_amigos + satisf_colegio +
satisf_contigo + satisf_barrio + satisf_vida + satisf_cuerpo) / 7
)
# Exploramos la distribución de nuestro nuevo índice
summary(elpi_completa$indice_bienestar) Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
1.000 4.857 5.714 5.514 6.286 7.000 442
hist(elpi_completa$indice_bienestar,
main = "Distribución del Índice de Bienestar (ELPI 2024)",
xlab = "Puntaje Promedio (1-7)",
col = "#7C90CC")
Interpretación: El summary nos muestra la distribución del índice. La mediana y la media nos permiten ver si la distribución está centrada o si hay asimetría. El histograma revela visualmente la forma de la distribución del bienestar subjetivo en esta cohorte de adolescentes chilenos.
5.2 Construcción de una Tipología Socio-Territorial
Objetivo: Crear perfiles de adolescentes según si viven en la Región Metropolitana (código 13) y si pertenecen a los quintiles de mayores ingresos (4 y 5).
elpi_final <- elpi_completa %>%
mutate(
tipo_perfil = case_when(
cod_region == 13 & qaut_casen %in% c(4, 5) ~ "RM - Quintil Alto",
cod_region == 13 & !qaut_casen %in% c(4, 5) ~ "RM - Quintil Bajo/Medio",
cod_region != 13 & qaut_casen %in% c(4, 5) ~ "Otras Regiones - Quintil Alto",
cod_region != 13 & !qaut_casen %in% c(4, 5) ~ "Otras Regiones - Quintil Bajo/Medio",
TRUE ~ "Sin Información"
)
)
# Verificamos el tamaño de cada grupo con table()
table(elpi_final$tipo_perfil)
Otras Regiones - Quintil Alto Otras Regiones - Quintil Bajo/Medio
1037 5504
RM - Quintil Alto RM - Quintil Bajo/Medio
755 2707
6. Análisis Descriptivo Final
Pregunta de Investigación: ¿Existen diferencias en el bienestar subjetivo según el perfil socio-territorial de los adolescentes?
elpi_final %>%
group_by(tipo_perfil) %>%
summarise(
bienestar_promedio = mean(indice_bienestar, na.rm = TRUE),
n_casos = n()
) %>%
arrange(desc(bienestar_promedio))Actividad de Interpretación: Observa la tabla de resultados. ¿Qué grupo presenta el mayor promedio de bienestar? ¿Y el menor? ¿Te sorprenden estos resultados? ¿Qué hipótesis sociológica podrías formular para explicar las diferencias observadas entre regiones y niveles socioeconómicos?
7. Actividad de Desafío
Ahora te toca a ti.
Pregunta: ¿Cómo varía la satisfacción específica con la vida familiar (satisf_familia) y con el colegio (satisf_colegio) a través de los quintiles de ingreso (qaut_casen)?
Instrucciones: 1. Usa la base elpi_final. 2. Agrupa por la variable qaut_casen. 3. Calcula el promedio de satisf_familia y satisf_colegio para cada quintil. 4. No olvides manejar los NA y contar el número de casos por grupo.
# Escribe tu código aquí