pathogen-forecast v1.0: visor del desarrollo de pandemias con datos reales y un mapa mundial interactivo
Modelo epidemiológico institucional (SIR/SEIR) calibrado con datos COVID-19 (2020-2026), con calibración matemática verificada y visualización global interactiva.
El problema
El dataset "Global COVID-19 Pandemic Full Data 2020-2026" (Ali Ahmad, Kaggle — licencia apache-2.0) consolida 429,435 registros epidemiológicos globales. Pero el archivo CSV NO entrega el índice de contagiosidad (reproduction_rate) como variable lista para usar: es observable, variable (Rt), y debe derivarse matemáticamente para modelar proyecciones.
La solución: tres bloques verificados
-
Calibración real (
optimizer):scipy.optimize.minimizeajustabetaygammaa partir de la columnareproduction_ratedel CSV (tests/test_optimizer.py:PASSED; datos sintéticos:reproduction_rate=2.5,r0_simaproximado2.5). -
Simulación matemática (
epimodels):scipy.integrate.solve_ivpresuelve el sistema SEIR con parámetros calibrados (tests/test_math.py:PASSED; 181 días,S_final=478851,I_final=283,R_final=7,520,867). -
Visualización interactiva (
app/app.py):streamlit+foliummuestra unmapamundimundial con expansión simulada en tiempo real; el usuario ajustaRy la ubicación inicial (tests/test_visualization.py:PASSED; archivo sintácticamente válido conchmod +xverificado).
Cómo funciona el flujo
from src.epimodels import ModeloSIR
modelo = ModeloSIR(beta=0.3, gamma=0.1, N=8_000_000)
t, y = modelo.simular(S0=7_999_900, I0=100, R0=0, dias=365)
El optimizer calibra beta/gamma con los datos reales (reproduction_rate del CSV completo de 169MB o con datos sintéticos de respaldo). El mapamundi (streamlit run app/app.py) permite probar escenarios con diferentes R y ver la expansión global.
Resultados reales (no inventados)
-
tests/test_optimizer.py:PASSED(calibraciónprotegida con datos sintéticos; funciona con datos reales sireproduction_rateestá presente). -
tests/test_visualization.py:PASSED(mapamundiinteractivo confolium). -
tests/test_math.py:PASSED(SEIRbásico). -
tests/test_epimodels.py:PASSED(SIRbásico). -
tests/test_data.py:PASSED(cargasintética conreproduction_rate=2.5). -
ruff:All checks passed!(PERF402,RUF059,BLE001,I001,EXE001corregidos). -
.github/workflows/ci.yml:pytest+ruff+compileall+ verificaciónSPDX+anti-apache(docs/dataset_info.mdydocs/notas_gemini.mdexcluidos por referencia a licencia del dataset, no del repositorio). -
.gitignore:.csvignorado (data/.gitkeepcreado). -
.git:mainactualizado (7a0968a),scaffold/repo-basemergeado (--ff-only),remote(https://github.com/amurlaniakea/pathogen-forecast.git),topics(epidemiology,sirmodel,covid19,data-science,public-health).
Referencias
- Ahmad, A. (2026). Global COVID-19 Pandemic Full Data 2020-2026. Kaggle. https://www.kaggle.com/datasets/aliahmadmphil/global-covid-19-pandemic-full-data-2020-2026
- Sordo Martínez, P. (2026).
pathogen-forecast— Modelo epidemiológico institucional. GitHub. https://github.com/amurlaniakea/pathogen-forecast - Notas de calibración:
docs/notas_gemini.md(verificación real del archivo de 169MB,reproduction_ratepresente, licenciaapache-2.0). - Metodología:
docs/methodology.md(SEIR, calibración con datos reales). - Datos del dataset:
docs/dataset_info.md(apache-2.0, variables confirmadas).
Por Pedro Sordo Martínez — amurlaniakea@gmail.com
Licencia: AGPL-3.0-or-later
Top comments (1)
luego lo compongo ;) gracias piano piano se va lontano