La epidemiología no son solo números; son personas cuyas vidas dependen de nuestra capacidad para interpretar la evidencia. En este tutorial, aprenderemos a calcular e interpretar las medidas epidemiológicas fundamentales utilizando datos reales de la pandemia de COVID-19. Construiremos nuestro conocimiento paso a paso.
Contexto: En los primeros meses de la pandemia, se sospechaba que la pérdida del olfato (anosmia) era un síntoma altamente prevalente en pacientes positivos para SARS-CoV-2.
Pregunta de investigación: ¿Cuál es la prevalencia de anosmia en pacientes con prueba PCR positiva comparado con aquellos con PCR negativa?
| Estado | PCR Positiva (Enfermos) | PCR Negativa (Sanos) | Total |
|---|---|---|---|
| Con Anosmia (Expuestos) | 45 | 15 | 60 |
| Sin Anosmia (No expuestos) | 105 | 835 | 940 |
| Total | 150 | 850 | 1000 |
La prevalencia en el grupo con anosmia es \(P_1=\frac{45}{60}=0.75\) (75%).
La prevalencia en el grupo sin anosmia es \(P_0=\frac{105}{940}=0.1117\) (11.17%).
\[ RP=\frac{P_1}{P_0}=\frac{0.75}{0.1117}=6.71 \]
Fórmula del Error Estándar (EE) del logaritmo natural de la RP:
\[ EE=\sqrt{\frac{1}{a}-\frac{1}{a+b}+\frac{1}{c}-\frac{1}{c+d}} \]
El IC 95% resultante es (5.16 - 8.73). La prueba de Chi-cuadrado da un valor p < 0.001.
Los pacientes que presentan anosmia tienen 6.71 veces mayor prevalencia de tener una prueba PCR positiva en comparación con los que no presentan este síntoma. La asociación es estadísticamente significativa.
# Instalación de paquetes si no están presentes
# install.packages(c("epitools", "epiR", "survival"))
library(epitools)
library(epiR)
library(survival)
tabla_transversal <- matrix(c(45, 105, 15, 835), nrow = 2, byrow = TRUE)
dimnames(tabla_transversal) <- list("Anosmia" = c("Sí", "No"), "PCR" = c("Positiva", "Negativa"))
epi.2by2(dat = tabla_transversal, method = "cross.sectional", conf.level = 0.95)## Outcome+ Outcome- Total Prev risk *
## Exposure+ 45 105 150 30.00 (22.80 to 38.01)
## Exposure- 15 835 850 1.76 (0.99 to 2.89)
## Total 60 940 1000 6.00 (4.61 to 7.66)
##
## Point estimates and 95% CIs:
## -------------------------------------------------------------------
## Prev risk ratio 17.00 (9.73, 29.70)
## Prev odds ratio 23.86 (12.85, 44.29)
## Attrib prev in the exposed * 28.24 (20.85, 35.62)
## Attrib fraction in the exposed (%) 94.12 (89.79, 96.61)
## Attrib prev in the population * 4.24 (2.52, 5.95)
## Attrib fraction in the population (%) 70.59 (62.20, 78.50)
## -------------------------------------------------------------------
## Uncorrected chi2 test that OR = 1: chi2(1) = 180.225 Pr>chi2 = <0.001
## Fisher exact test that OR = 1: Pr>chi2 = <0.001
## Wald confidence limits
## CI: confidence interval
## * Outcomes per 100 population units
Gómez-Iglesias et al. (2020). Anosmia and ageusia as screening markers for COVID-19. DOI: 10.3389/fpubh.2020.00243
Contexto: ¿Es la obesidad un factor de riesgo para desarrollar COVID-19 severo? Comparamos pacientes en UCI (Casos) con pacientes ambulatorios (Controles).
| Factor de Riesgo | Casos (Severo) | Controles (Leve) | Total |
|---|---|---|---|
| Obesidad (BMI >30) | 120 | 80 | 200 |
| Sin Obesidad | 180 | 320 | 500 |
| Total | 300 | 400 | 700 |
\[ OR=\frac{a \times d}{b \times c}=\frac{120 \times 320}{80 \times 180}=\frac{38400}{14400}=2.66 \] ### c) Intervalo de Confianza del 95% Calculado vía \(\ln(OR) \pm 1.96 \times EE\). IC 95%: (1.91 - 3.71).
Valor p < 0.001.
Cuidado con la “Trampa del Riesgo”: Un error muy común en la literatura es interpretar el OR usando palabras como “probabilidad”, “riesgo” o “chance” (ej. “tienen 2.66 veces más riesgo de…”). El Odds Ratio solo es un buen proxy (estimador) del Riesgo Relativo bajo la suposición de enfermedad rara (cuando la prevalencia es < 10%). En escenarios donde el desenlace es frecuente (como muchas complicaciones del COVID-19), usar lenguaje de riesgo para describir un OR exagerará artificialmente la magnitud de la asociación. Los “momios” (razón evento/no-evento) no son matemáticamente equivalentes al “riesgo” (razón evento/total).
tabla_cc <- matrix(c(120, 180, 80, 320), nrow = 2, byrow = TRUE)
dimnames(tabla_cc) <- list("Obesidad" = c("Sí", "No"), "Estado" = c("Severo", "Leve"))
epi.2by2(dat = tabla_cc, method = "case.control", conf.level = 0.95)## Outcome+ Outcome- Total Odds
## Exposed + 120 180 300 0.67 (0.52 to 0.84)
## Exposed - 80 320 400 0.25 (0.19 to 0.32)
## Total 200 500 700 0.40 (0.34 to 0.47)
##
## Point estimates and 95% CIs:
## -------------------------------------------------------------------
## Exposure odds ratio 2.67 (1.90, 3.73)
## Attrib fraction (est) in the exposed (%) 62.50 (47.51, 73.21)
## Attrib fraction (est) in the population (%) 37.50 (32.89, 42.67)
## -------------------------------------------------------------------
## Uncorrected chi2 test that OR = 1: chi2(1) = 33.600 Pr>chi2 = <0.001
## Fisher exact test that OR = 1: Pr>chi2 = <0.001
## Wald confidence limits
## CI: confidence interval
Tartof, S. Y., et al. (2020). Obesity and Mortality Among Patients Diagnosed With COVID-19. DOI: 10.7326/M20-3742
“La epidemiología retrospectiva nos permite aprender de los datos del pasado para mejorar los protocolos clínicos del futuro.”
Contexto Clínico: Utilizando registros electrónicos
de salud (conocidos comúnmente en investigación como EHR
por sus siglas en inglés, Electronic Health Records), un equipo
de investigación miró hacia el pasado para analizar el impacto de
intervenciones específicas. Específicamente, se evaluó si la
administración de anticoagulantes profilácticos (como
la enoxaparina) durante la hospitalización redujo la
mortalidad en pacientes con diagnóstico confirmado de
COVID-19.
Pregunta de Investigación: ¿El uso de anticoagulantes en pacientes hospitalizados por SARS-CoV-2 está asociado con un menor riesgo de mortalidad intrahospitalaria?
Para estructurar este análisis en R, el equipo definió las siguientes variables clave:
expuesto = 1 (Recibió anticoagulantes)expuesto = 0 (No recibió anticoagulantes)evento = TRUE (Fallecido)evento = FALSE (Vivo)Dado que es un estudio longitudinal (cohorte retrospectiva), la medida de asociación adecuada no es el Odds Ratio (OR), sino el Riesgo Relativo (RR). Este se calcula utilizando la siguiente fórmula matemática:
\[ RR = \frac{\text{Incidencia en Expuestos (I}_e\text{)}}{\text{Incidencia en No Expuestos (I}_o\text{)}} \]
Si el \(RR < 1\), indicará que la intervención actuó como un factor protector.
| Exposición | Evento (Mortalidad) | Sin Evento (Alta/Vivo) | Total |
|---|---|---|---|
| Anticoagulantes (Expuestos) | 45 | 255 | 300 |
| Sin Anticoagulantes (No expuestos) | 120 | 280 | 400 |
| Total | 165 | 535 | 700 |
Incidencia en expuestos: \(I_e=\frac{45}{300}=0.15\) (15%). Incidencia en no expuestos: \(I_o=\frac{120}{400}=0.30\) (30%).
\[ RR=\frac{0.15}{0.30}=0.50 \] ### c & d) IC 95% y Valor p IC 95%: (0.33 - 0.79). Valor p: 0.002.
tabla_cohorte <- matrix(c(45, 255, 120, 280), nrow = 2, byrow = TRUE)
dimnames(tabla_cohorte) <- list("Anticoagulación" = c("Sí", "No"), "Mortalidad" = c("Fallecido", "Vivo"))
epi.2by2(dat = tabla_cohorte, method = "cohort.count", conf.level = 0.95)## Outcome+ Outcome- Total Inc risk *
## Exposure+ 45 255 300 15.00 (11.16 to 19.55)
## Exposure- 120 280 400 30.00 (25.55 to 34.75)
## Total 165 535 700 23.57 (20.47 to 26.89)
##
## Point estimates and 95% CIs:
## -------------------------------------------------------------------
## Inc risk ratio 0.50 (0.37, 0.68)
## Inc odds ratio 0.41 (0.28, 0.60)
## Attrib risk in the exposed * -15.00 (-21.04, -8.96)
## Attrib fraction in the exposed (%) -100.00 (-172.82, -47.69)
## Attrib risk in the population * -6.43 (-11.91, -0.95)
## Attrib fraction in the population (%) -27.27 (-29.22, -24.78)
## -------------------------------------------------------------------
## Uncorrected chi2 test that OR = 1: chi2(1) = 21.410 Pr>chi2 = <0.001
## Fisher exact test that OR = 1: Pr>chi2 = <0.001
## Wald confidence limits
## CI: confidence interval
## * Outcomes per 100 population units
Nadkarni, G. N., et al. (2020). Anticoagulation, Bleeding, Mortality, and Pathology in Hospitalized Patients With COVID-19. JACC. DOI: 10.1016/j.jacc.2020.08.041
Contexto: El estudio MOVe-OUT evaluó la eficacia de Molnupiravir frente a placebo en pacientes no hospitalizados.
| Tratamiento | Evento (Hospitalización) | Sin Evento | Total |
|---|---|---|---|
| Molnupiravir | 28 | 357 | 385 |
| Placebo | 53 | 324 | 377 |
| Total | 81 | 681 | 762 |
\[ RR=\frac{I_e}{I_o}=\frac{0.0727}{0.1405}=0.517 \]
Reducción Absoluta del Riesgo (RAR): \[ RAR = I_o - I_e = 0.1405 - 0.0727 = 0.0678 \] Interpretación: El tratamiento reduce el riesgo absoluto de hospitalización en un 6.78%.
Número Necesario a Tratar (NNT): \[ NNT = \frac{1}{RAR} = \frac{1}{0.0678} = 14.75 \approx 15 \]
tabla_rct <- matrix(c(28, 357, 53, 324), nrow = 2, byrow = TRUE)
dimnames(tabla_rct) <- list("Tratamiento" = c("Molnupiravir", "Placebo"), "Desarrollo" = c("Evento", "Sin Evento"))
res_molnu <- epi.2by2(dat = tabla_rct, method = "cohort.count", conf.level = 0.95)
res_molnu## Outcome+ Outcome- Total Inc risk *
## Exposure+ 28 357 385 7.27 (4.89 to 10.34)
## Exposure- 53 324 377 14.06 (10.71 to 17.98)
## Total 81 681 762 10.63 (8.53 to 13.04)
##
## Point estimates and 95% CIs:
## -------------------------------------------------------------------
## Inc risk ratio 0.52 (0.33, 0.80)
## Inc odds ratio 0.48 (0.30, 0.78)
## Attrib risk in the exposed * -6.79 (-11.15, -2.42)
## Attrib fraction in the exposed (%) -93.30 (-198.21, -25.70)
## Attrib risk in the population * -3.43 (-7.56, 0.71)
## Attrib fraction in the population (%) -32.25 (-37.92, -25.55)
## -------------------------------------------------------------------
## Uncorrected chi2 test that OR = 1: chi2(1) = 9.232 Pr>chi2 = 0.002
## Fisher exact test that OR = 1: Pr>chi2 = 0.003
## Wald confidence limits
## CI: confidence interval
## * Outcomes per 100 population units
Jayk Bernal, A., et al. (2021). Molnupiravir for Oral Treatment of Covid-19. DOI: 10.1056/NEJMoa2116044
Diferencia de Riesgos (DR): \[ DR=Riesgo_{p}-Riesgo_{v}=0.007455-0.000368=0.007087 \]
Número Necesario a Vacunar (NNV): \[ NNV = \frac{1}{DR} = \frac{1}{0.007087} = 141.1 \approx 142 \] ### c) Interpretación: Se necesita vacunar a 142 personas para prevenir 1 caso sintomático.
Fracción Atribuible Poblacional (FAP): \[ FAP=\frac{I_p-Riesgo_{v}}{I_p} = \frac{0.003913 - 0.000368}{0.003913} = 0.906 \] Interpretación: El 90.6% de los casos de COVID-19 en la población general son atribuibles a no estar vacunados.
tabla_vacuna <- matrix(c(8, 21712, 162, 21566), nrow = 2, byrow = TRUE)
dimnames(tabla_vacuna) <- list("Grupo" = c("Vacuna", "Placebo"), "COVID" = c("Sí", "No"))
resultados_vacuna <- epi.2by2(dat = tabla_vacuna, method = "cohort.count", conf.level = 0.95)
resultados_vacuna # Imprime todos los resultados, incluyendo el Riesgo Atribuible (Diferencia de Riesgos)## Outcome+ Outcome- Total Inc risk *
## Exposure+ 8 21712 21720 0.04 (0.02 to 0.07)
## Exposure- 162 21566 21728 0.75 (0.64 to 0.87)
## Total 170 43278 43448 0.39 (0.33 to 0.45)
##
## Point estimates and 95% CIs:
## -------------------------------------------------------------------
## Inc risk ratio 0.05 (0.02, 0.10)
## Inc odds ratio 0.05 (0.02, 0.10)
## Attrib risk in the exposed * -0.71 (-0.83, -0.59)
## Attrib fraction in the exposed (%) -1924.25 (-3958.28, -909.85)
## Attrib risk in the population * -0.35 (-0.48, -0.23)
## Attrib fraction in the population (%) -90.55 (-91.19, -89.85)
## -------------------------------------------------------------------
## Uncorrected chi2 test that OR = 1: chi2(1) = 139.997 Pr>chi2 = <0.001
## Fisher exact test that OR = 1: Pr>chi2 = <0.001
## Wald confidence limits
## CI: confidence interval
## * Outcomes per 100 population units
Recuerden que la epidemiología clínica no es el arte de memorizar fórmulas, sino la ciencia de dudar metódicamente para tomar mejores decisiones. Detrás de cada Razón de Prevalencias, de cada Riesgo Relativo y de cada NNT que calculen en su carrera, hay historias reales de pacientes esperando intervenciones basadas en evidencia sólida y bien interpretada. ¡El poder de cambiar los desenlaces clínicos de sus pacientes está ahora en sus manos!
Nos vemos el viernes para discutir los resultados de los estudios analizados en el taller. Dr. Guevara