Health Analytics · Global Study
Manuel García Molledo · TFM · Nuclio Digital School · 2026
40 países · 20 años · Our World in Data
Esperanza de Vida por Grupo
Media período · selección vs global
Evolución Esperanza de Vida
Tendencia temporal · selección vs global (gris)
Correlaciones con LE
Pearson · selección activa
Preston Curve · LE vs log(GDP)
Log-lineal · selección destacada vs global gris
Brecha de Eficiencia
Años sobre/bajo predicción por GDP
Esperanza de Vida
GDP per Cápita
Tasa Pobreza (%)
Gasto Salud % GDP
Vacunación (%)
HIV/AIDS (por 100k)
Tasa Suicidio
Tasa Homicidio
Cáncer (por 100k)
Correlaciones con LE por Nivel de Desarrollo
Pearson · panel TFM · cada grupo por separado
Evolución de la Brecha 2000–2019
Diferencia LE media Desarrollados vs En Desarrollo
Distribución LE por Grupo (promedios por país)
Dispersión interna · cada punto = un país
Preston Curve: 2000 vs 2019
Desplazamiento de la curva en 20 años · log(GDP)
Desarrollados Emergentes En Desarrollo Global
LE vs GDP · Preston Curve · log-lineal
LE vs Gasto Salud % GDP
LE vs Pobreza
LE vs Vacunación
LE vs VIH/SIDA
LE vs Homicidio
LE vs Cáncer
LE vs Mortalidad Neonatal
LE vs Suicidio
Desviación vs Potencial por GDP
Verde = por encima · Rojo = por debajo de predicción
Ranking Eficiencia
Indicador:
Tendencia por Región
Recalculado desde datos de países · + media global (gris)
Comparativa Regional
Media del período · línea global de referencia
Mejora LE 2000→2019 por Región
Años ganados · datos filtrados vs mejora global
Ficha país: independiente de filtros · vs global (gris) · vs grupo (punteado color)
Esperanza de Vida
GDP per Cápita
Gasto Salud % GDP
Vacunación
Tasa Suicidio
Perfil normalizado
0 = mín global · 1 = máx global · punteado = media grupo · gris = global
Posición relativa · Percentil vs todos los países
Ranking en cada métrica — 100 = mejor posición posible
Nota: Datos embebidos en const D={...}. Una sola línea conecta a API: const D = await fetch('/api/health').then(r=>r.json()). Frontend sin cambios.
Pipeline de Datos — Arquitectura Empresarial
🗄
Fuentes
Our World in Data
WHO · World Bank
UNODC · Penn Tables
⚙️
ETL · Python
pandas · numpy
scikit-learn
jupyter
💾
Data Store
BigQuery · Postgres
Parquet · dbt
scheduled refresh
🔌
API
FastAPI · Flask
REST endpoints
/api/health?filters
📊
Dashboard
Chart.js · HTML5
filtros contextuales
sin dependencias
Capa de datos
Actualmente: const D = {...} embebido.

En producción:
const D = await fetch('/api/health?y0=2000&y1=2019').then(r=>r.json())

Todo el frontend — filtros, recálculos, visualizaciones — funciona igual sin refactorizar.
Decisiones técnicas
Chart.js 4.4 — Ligero, sin dependencias.

Recálculo en cliente — Pearson, medias y tendencias en tiempo real desde country_ts (800 rows). Latencia <10ms.

Escalabilidad — Con >10k filas el recálculo migra al backend. El contrato JSON no cambia.
Modelos aplicados · TFM
Preston Curve
Log-lineal LE ~ log(GDP). R² = 0.674. Base para efficiency_gap.
Gradient Boosting
R² = 0.987 en test. Variables: GDP, gasto, vacunación, pobreza.
DiD · Thailand
Diferencia en diferencias: Universal Coverage Scheme 2002. +1.6 años LE.
Manuel García Molledo · TFM · Nuclio Digital School · 2026 · Datos: Our World in Data · WHO · World Bank · UNODC · Penn World Tables