Saltar al contenido
Volver a DMetrics
SerieCasos: resolver con datos· Capítulo 1 de 5
ArtículoIntermedio9 min
RShinyplotlydata.table

Observatorio GEIH: cómo servir 4 años de microdatos del DANE en una app que carga al instante

El patrón de pre-agregación detrás del Observatorio GEIH — de ~2.5 GB de microdatos por año a un archivo de 0.4 MB — y el camino del software al artículo en Springer.

DM
Daniel MolinaEconomista & Data Scientist

1. El reto: microdatos que no caben en una app

La GEIH es la encuesta con la que Colombia mide su mercado laboral, y sus microdatos públicos pesan alrededor de 2.5 GB por año. El Observatorio cubre 4 años (2022–2025) y 7 dimensiones — demografía, educación, mercado laboral, vivienda, salud, migración y datos —, con foco especial en la caracterización de la población venezolana. Cargar eso en una app Shiny alojada en el plan gratuito de shinyapps.io es directamente imposible: la app moriría antes de mostrar el primer gráfico.

2. El patrón: pre-agregar offline

La solución es no llevar los microdatos a la app. Un paso de preparación corre offline: lee los 4 años, calcula todos los indicadores por año × territorio × población, y guarda solo las tablas agregadas en un archivo .rds de ~0.4 MB — seis mil veces más pequeño que la fuente. La app solo lee y filtra ese archivo, por eso carga al instante y escala a más años sin tocar memoria. Los microdatos ni siquiera se versionan: son públicos y cualquiera puede regenerar los agregados con los scripts del repo.

R
# Offline (una vez por actualización): microdato -> agregados
# preparacion/agregar.R lee los 4 años y pre-agrega
# por año x territorio x población, ponderando por FEX_C18.
saveRDS(agregados, "agregados.rds")   # ~0.4 MB, versionado

# En la app (cada visita): nunca se toca el microdato
agregados <- readRDS("agregados.rds")
# ... los módulos solo filtran y grafican

3. El rigor: metodología DANE y auditoría

Pre-agregar solo sirve si los números son correctos. Todo indicador poblacional se pondera por el factor de expansión oficial (FEX_C18) y los conteos se expresan como promedio mensual. Cada indicador usa su unidad de análisis correcta — persona, hogar o vivienda: la tenencia de vivienda se agrega por hogar, no por persona. Las tasas laborales usan las definiciones oficiales del DANE: TGP = FT/PET, TO = OC/PET, TD = DS/FT. Y hay una red de seguridad: un script de auditoría verifica que los agregados coincidan con el microdato y que los valores caigan en los rangos oficiales.

4. De script a producto: la app modular

El Observatorio no es un script largo: cada pestaña es un módulo de Shiny independiente, con un tema de gráficos compartido que mantiene la identidad visual. La app tiene filtros por año, nivel territorial (nacional/departamental) y población (total o migrante venezolana), KPIs por sección, series de tendencia trimestrales, exportación a CSV y Excel, y está optimizada para móvil. Esa estructura modular fue lo que permitió que la v2 (de un año a cuatro) fuera una evolución y no una reescritura.

5. Del software al paper en Springer

El Observatorio terminó siendo el artefacto de un artículo de investigación en coautoría con Iván Cruz y Alic Barandica, presentado en R Day 2025 (Medellín) y publicado en Communications in Computer and Information Science (Springer). La lección que me llevo: el software reproducible es investigación — si la app respeta la metodología oficial, se audita contra la fuente y cualquiera puede regenerarla, el paso de producto a publicación académica es natural.

Índice de la serieCasos: resolver con datos

5 de 5 capítulos publicados

  1. 01¿Cómo servir años de microdatos en una app que carga al instante?Estás aquí
  2. 02¿Cómo explorar los microdatos del mercado laboral sin perderse?
  3. 03¿Cómo pasar del dato del ICFES a un informe institucional trazable?
  4. 04¿Qué patrones esconden 5,3 millones de micronegocios?
  5. 05¿Qué pesa de verdad en la pobreza multidimensional?
Cómo citar este trabajo

Cruz, I., Molina, D., & Barandica, A. (2026). Interactive Visualization and Analysis of Colombia's GEIH Data: A Shiny Application for Reproducible Demographic and Labor Market Research. En Communications in Computer and Information Science (pp. 139–152). Springer, Cham. https://doi.org/10.1007/978-3-032-18455-9_8

También te puede interesar