Bienvenidos al mundo de las decisiones clínicas fundamentadas

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.

1. Diseño Transversal: Razón de Prevalencias (RP)

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?

a) Tabla 2 x 2

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

b) Razón de Prevalencias (Cálculo Manual)

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 \]

c) Intervalo de Confianza del 95% (IC 95%)

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.

d) Interpretación y Código en R

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) Referencia Bibliográfica

Gómez-Iglesias et al. (2020). Anosmia and ageusia as screening markers for COVID-19. DOI: 10.3389/fpubh.2020.00243


2. Casos y Controles: Odds Ratio (OR)

Contexto: ¿Es la obesidad un factor de riesgo para desarrollar COVID-19 severo? Comparamos pacientes en UCI (Casos) con pacientes ambulatorios (Controles).

a) Tabla 2 x 2

Factor de Riesgo Casos (Severo) Controles (Leve) Total
Obesidad (BMI >30) 120 80 200
Sin Obesidad 180 320 500
Total 300 400 700

b) Odds Ratio

\[ 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).

d) Prueba de significancia

Valor p < 0.001.

e) Interpretación Clínica Precisa: Por cada caso de COVID-19 sin obesidad, existen 2.66 veces más casos de COVID-19 entre obesos comparados con los controles. Esta forma de expresarlo nos permite entender la “ventaja” de frecuencias sin utilizar engañosamente la palabra “riesgo”.

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).

f) Código en R

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

g) Referencia Bibliográfica

Tartof, S. Y., et al. (2020). Obesity and Mortality Among Patients Diagnosed With COVID-19. DOI: 10.7326/M20-3742


3. Estudio Longitudinal Retrospectivo: Riesgo Relativo (RR)

“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?

a) Definición de Variables

Para estructurar este análisis en R, el equipo definió las siguientes variables clave:

  • Exposición (Variable Independiente): Uso de terapia anticoagulante profiláctica.
    • expuesto = 1 (Recibió anticoagulantes)
    • expuesto = 0 (No recibió anticoagulantes)
  • Desenlace (Variable Dependiente): Estado del paciente al alta.
    • evento = TRUE (Fallecido)
    • evento = FALSE (Vivo)

b) Métrica de Asociación y Cálculo

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.

e) Interpretación: Los pacientes que recibieron terapia anticoagulante profiláctica tuvieron la mitad del riesgo (o un 50% menos de riesgo) de fallecer por COVID-19 en comparación con aquellos que no la recibieron.

f) Código en R

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

g) Referencia

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


4. Ensayo Clínico Controlado (ECCA): Molnupiravir e Impacto Clínico

Contexto: El estudio MOVe-OUT evaluó la eficacia de Molnupiravir frente a placebo en pacientes no hospitalizados.

a) Tabla 2 x 2

Tratamiento Evento (Hospitalización) Sin Evento Total
Molnupiravir 28 357 385
Placebo 53 324 377
Total 81 681 762

b) Medidas Relativas y Absolutas

\[ 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 \]

c) Interpretación: Se necesita tratar a 15 pacientes con Molnupiravir para prevenir 1 hospitalización.

d) Código en R

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

e) Referencia

Jayk Bernal, A., et al. (2021). Molnupiravir for Oral Treatment of Covid-19. DOI: 10.1056/NEJMoa2116044


5. Medidas Absolutas y Poblacionales: Vacunación (BNT162b2)

a) Datos y Riesgos

  • Vacuna: \(Riesgo_{v}=0.000368\) (8 casos de 21,720).
  • Placebo: \(Riesgo_{p}=0.007455\) (162 casos de 21,728).
  • Población Total: \(Incidencia Poblacional (I_p) = 0.003913\).

b) Medidas de Impacto

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.

d) Código en R

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

Reflexión Final

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