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

Autor/a

Gabriel Sotomayor

Fecha de publicación

28 septiembre 2026

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:

  1. La base del Responsable Principal (RP), que contiene información socioeconómica detallada del hogar y características generales de cada miembro.
  2. 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.

library(haven)
library(tidyverse)

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í