Herramientas reproducibles en R para el análisis de encuestas poblacionales complejas y la estimación de áreas pequeñas en Perú
Estado del proyecto: versión experimental
0.1.0, en desarrollo y validación activa.
ENDES.metodos es un paquete de R orientado al análisis estadístico de encuestas poblacionales peruanas, principalmente la Encuesta Demográfica y de Salud Familiar (ENDES) y la Encuesta Nacional de Hogares (ENAHO).
El paquete proporciona herramientas para:
- definir diseños muestrales complejos;
- estimar indicadores ponderados de salud;
- realizar análisis por dominios y subpoblaciones;
- ajustar modelos de regresión considerando el diseño de la encuesta;
- producir estimaciones para áreas pequeñas;
- evaluar la incertidumbre y el desempeño predictivo de los modelos;
- construir flujos de trabajo transparentes y reproducibles.
ENDES.metodos complementa al paquete ENDES.PE, que facilita la consulta y descarga de bases públicas de la ENDES.
El proyecto adopta convenciones utilizadas en encuestas del programa Demographic and Health Surveys (DHS), pero no es un producto oficial del INEI, del DHS Program ni de otra institución pública.
Las encuestas nacionales como ENDES y ENAHO utilizan diseños muestrales que incorporan:
- estratificación;
- selección por conglomerados;
- probabilidades desiguales de selección;
- factores de expansión;
- estimación por dominios y subpoblaciones.
Ignorar estos elementos puede producir estimaciones incorrectas de las varianzas, los intervalos de confianza y las asociaciones estadísticas.
Además, aunque estas encuestas permiten estimaciones nacionales y regionales, los resultados directos para provincias, distritos u otros dominios pequeños pueden presentar:
- tamaños muestrales reducidos;
- coeficientes de variación elevados;
- varianzas inestables;
- áreas sin observaciones;
- cambios abruptos entre áreas geográficamente cercanas.
ENDES.metodos busca integrar métodos basados en el diseño muestral con técnicas de estimación de áreas pequeñas para producir análisis más robustos, transparentes y reproducibles.
| Función | Descripción | Estado |
|---|---|---|
endes_diseno_encuesta() |
Construye un objeto survey.design e identifica las variables de conglomerado, estrato y ponderación según la unidad de análisis. |
Implementada |
endes_subpoblacion() |
Define subpoblaciones conservando la estructura completa del diseño muestral para estimar correctamente las varianzas. | Implementada |
endes_estimar() |
Calcula medias, proporciones, totales y razones ponderadas, globales o por dominio. | Implementada |
endes_glm_encuesta() |
Ajusta modelos lineales generalizados mediante survey::svyglm() y devuelve resultados estandarizados. |
Implementada |
endes_dominio_directo() |
Obtiene estimaciones directas, errores estándar y varianzas por dominio para su uso posterior en modelos de áreas pequeñas. | Implementada |
| Función | Descripción | Estado |
|---|---|---|
endes_vars_anemia() |
Construye variables de anemia en niños o mujeres a partir de variables ENDES compatibles. | Experimental |
endes_vars_morbilidad_infantil() |
Construye indicadores de diarrea, infección respiratoria aguda y fiebre en menores de cinco años. | Experimental |
Las definiciones de los indicadores deben verificarse frente al cuestionario, diccionario y metodología correspondientes al año de la encuesta analizada.
| Función | Descripción | Estado |
|---|---|---|
endes_sfh_prevalencia() |
Ajusta un modelo Spatial Fay–Herriot para estimar prevalencias en áreas pequeñas. | Experimental |
endes_sfh_estratificado() |
Ajusta modelos Spatial Fay–Herriot separados por estratos de pobreza. | Experimental |
endes_sfh_loo_cv() |
Ejecuta validación cruzada leave-one-out y calcula RMSE, MAE, sesgo y cobertura empírica. | Experimental |
inei_covariables_distritales() |
Integra covariables distritales abiertas del INEI para su uso en modelos de áreas pequeñas. | Experimental |
| Función | Descripción | Estado |
|---|---|---|
endes_bootstrap_ic() |
Construye pesos replicados mediante bootstrap para diseños muestrales complejos. | Experimental |
endes_sae_mcmc() |
Propaga la incertidumbre de prevalencias y denominadores poblacionales mediante simulación Monte Carlo paramétrica. | Experimental |
La denominación de
endes_sae_mcmc()se conserva actualmente por compatibilidad con el desarrollo inicial. La implementación corresponde a simulación Monte Carlo paramétrica y su nomenclatura será revisada en una versión futura.
La versión de desarrollo puede instalarse directamente desde GitHub:
install.packages("remotes")
remotes::install_github("llabans/ENDES.metodos")Luego puede cargarse con:
library(ENDES.metodos)Para descargar y organizar bases públicas de la ENDES puede utilizarse también:
ENDES.PE es un paquete complementario que facilita la descarga y organización de bases públicas de la ENDES. No es necesario para utilizar las funciones principales de ENDES.metodos.
if (!requireNamespace("remotes", quietly = TRUE)) {
install.packages("remotes")
}
if (!requireNamespace("ENDES.PE", quietly = TRUE)) {
remotes::install_github("avallecam/ENDES.PE")
}
library(ENDES.PE)El siguiente ejemplo utiliza datos simulados para mostrar el flujo básico del paquete sin descargar información externa.
library(ENDES.metodos)
set.seed(2026)
n <- 800
datos <- data.frame(
V021 = sample(1:80, n, replace = TRUE), # conglomerado
V022 = sample(1:20, n, replace = TRUE), # estrato
V005 = sample(500000:1500000, n, replace = TRUE),# ponderación DHS
anemia = rbinom(n, size = 1, prob = 0.35),
area = factor(sample(c("Urbana", "Rural"), n, replace = TRUE)),
edad_meses = sample(6:59, n, replace = TRUE),
distrito = factor(sample(sprintf("D%02d", 1:20), n, replace = TRUE))
)Para niños, el argumento aceptado es "nino", sin tilde:
diseno <- endes_diseno_encuesta(
datos = datos,
unidad = "nino"
)estimacion_nacional <- endes_estimar(
diseno = diseno,
formula = ~anemia,
fun = "proporcion"
)
estimacion_nacionalLa salida contiene:
- estimación ponderada;
- error estándar;
- intervalo de confianza;
- coeficiente de variación;
- tamaño muestral no ponderado.
estimacion_area <- endes_estimar(
diseno = diseno,
formula = ~anemia,
por = ~area,
fun = "proporcion"
)
estimacion_areamodelo <- endes_glm_encuesta(
diseno = diseno,
formula = anemia ~ area + edad_meses,
familia = quasibinomial(),
exponenciar = TRUE
)
modeloestimaciones_distritales <- endes_dominio_directo(
diseno = diseno,
resultado = ~anemia,
dominio = ~distrito
)
estimaciones_distritalesEstas estimaciones directas y sus varianzas pueden utilizarse como insumos para modelos de áreas pequeñas.
Para ajustar un modelo espacial, la matriz de adyacencia y las covariables deben estar ordenadas exactamente como las estimaciones directas.
m <- nrow(estimaciones_distritales)
# Matriz de adyacencia simulada con estructura circular.
# Se utiliza únicamente con fines ilustrativos.
W <- matrix(0, nrow = m, ncol = m)
for (i in seq_len(m)) {
anterior <- if (i == 1) m else i - 1
siguiente <- if (i == m) 1 else i + 1
W[i, anterior] <- 1
W[i, siguiente] <- 1
}
W <- W / rowSums(W)
covariables <- data.frame(
pobreza = runif(m, 0.05, 0.80),
ruralidad = runif(m, 0, 1)
)
modelo_sfh <- endes_sfh_prevalencia(
estimacion_directa = estimaciones_distritales$estimacion,
vardir = pmax(estimaciones_distritales$vardir, 1e-8),
matriz_adyacencia = W,
covariables = covariables
)
modelo_sfhLa matriz espacial empleada en un análisis real debe construirse a partir de información geográfica válida y someterse a evaluación de sensibilidad.
El desarrollo del paquete sigue los siguientes principios:
-
Respeto del diseño muestral
Las ponderaciones, los conglomerados y los estratos deben incorporarse explícitamente en la estimación.
-
Análisis correcto de subpoblaciones
Las subpoblaciones se definen sobre el objeto de diseño, evitando eliminar observaciones antes de estimar las varianzas.
-
Incertidumbre explícita
Los resultados deben incluir errores estándar, intervalos de confianza, varianzas directas o medidas de error predictivo.
-
Reproducibilidad
Los análisis deben poder reconstruirse mediante código, datos públicos o simulados, semillas de aleatorización y documentación metodológica.
-
Validación frente a referencias
Las funciones deben compararse con implementaciones consolidadas, estimaciones oficiales reproducibles y estudios de simulación con valores verdaderos conocidos.
-
Transparencia sobre las limitaciones
Los modelos de áreas pequeñas dependen de sus covariables, transformaciones, estructura espacial y supuestos estadísticos. Una estimación suavizada no es automáticamente una estimación válida, por mucho que el mapa resultante sea visualmente atractivo.
ENDES.metodos se encuentra en una etapa experimental.
Las funciones principales de diseño, estimación y regresión cuentan con pruebas automatizadas iniciales y se apoyan en los paquetes survey, sae, sf y spdep. Sin embargo, el paquete aún requiere una validación metodológica más amplia antes de recomendar su uso rutinario.
La estrategia de validación incluye:
- comparación con funciones de referencia del paquete
survey; - reproducción de indicadores publicados;
- simulaciones para evaluar sesgo y error cuadrático medio;
- evaluación de la cobertura de intervalos de confianza;
- análisis de sensibilidad a matrices de adyacencia y covariables;
- validación cruzada de modelos de áreas pequeñas;
- revisión de definiciones operativas de indicadores;
- evaluación de casos extremos, valores faltantes y dominios con muestras reducidas.
- El paquete no reemplaza los manuales metodológicos de ENDES, ENAHO, INEI o DHS.
- Las variables y códigos pueden cambiar entre años, módulos y poblaciones.
- Las funciones experimentales deben ser revisadas antes de emplearse en publicaciones, informes oficiales o decisiones de política pública.
- Los modelos de áreas pequeñas no corrigen automáticamente errores de medición, sesgos de cobertura o covariables mal especificadas.
- Los resultados deben someterse a revisión estadística y epidemiológica.
- Los autores no garantizan la validez de análisis realizados sin verificar los datos de entrada, los supuestos del modelo y la correspondencia entre dominios geográficos.
Las siguientes etapas del proyecto incluyen:
- ampliar las pruebas unitarias y de integración;
- ampliar la integración continua con pruebas en múltiples versiones de R;
- desarrollar estudios formales de simulación;
- validar indicadores frente a estimaciones oficiales reproducibles;
- mejorar el manejo de dominios sin muestra;
- revisar las transformaciones utilizadas para prevalencias extremas;
- fortalecer los diagnósticos de modelos Spatial Fay–Herriot;
- crear viñetas reproducibles en español e inglés;
- preparar una versión estable del paquete;
- publicar un informe metodológico o preprint de validación.
Las contribuciones de epidemiólogos, estadísticos, científicos de datos y desarrolladores de R son bienvenidas.
Para proponer una modificación:
- abra un issue describiendo el problema o la mejora;
- cree una rama específica para el cambio;
- incluya pruebas cuando modifique una función;
- documente los supuestos metodológicos;
- envíe un pull request con una descripción reproducible.
Los cambios metodológicos deberán incluir referencias, justificación estadística y evidencia de validación.
Mientras se prepara un archivo formal CITATION.cff, la información de citación puede consultarse desde R:
citation("ENDES.metodos")Referencia provisional:
Labán-Seminario LM. ENDES.metodos: métodos estadísticos para encuestas poblacionales en Perú. Paquete de R, versión experimental 0.1.0.
Este proyecto se distribuye bajo la licencia GPL-3.
- Programa Demographic and Health Surveys
- Indicadores de salud: aspectos conceptuales y operativos — OPS/PAHO
survey: análisis de muestras complejas en Rsae: métodos de estimación de áreas pequeñas en RENDES.PE
Luis Maximiliano Labán Seminario
- GitHub: @llabans
- Correo: luis.labans@gmail.com