R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

##SetWD

setwd("~/MAESTRIA EPIDEMIOLOGIA ICESI/recoleccion_d/taller_s4")

INSTALAR PAQUETES

PAQUETES UTILES

knitr::opts_chunk$set(
    echo = TRUE,
    message = FALSE,
    warning = FALSE
)
set.seed(704)   # Make all random draws reproducible

packages <- c("tidyverse", "survival", "here", "arm","tibble", "broom", "tidyverse", "dagitty", "ggdag",
              "knitr", "patchwork", "ggridges", "gmodels", "xaringanthemer", "latex2exp", "stdReg", 
              "epiR", "stats",  "epitools")

invisible(lapply(packages, function(xxx) suppressMessages(require(xxx, character.only = TRUE, quietly=TRUE, warn.conflicts = FALSE))))
## Warning: package 'tidyverse' was built under R version 4.5.3
## Warning: package 'ggplot2' was built under R version 4.5.3
## Warning: package 'tibble' was built under R version 4.5.2
## Warning: package 'tidyr' was built under R version 4.5.3
## Warning: package 'readr' was built under R version 4.5.2
## Warning: package 'purrr' was built under R version 4.5.2
## Warning: package 'dplyr' was built under R version 4.5.3
## Warning: package 'stringr' was built under R version 4.5.2
## Warning: package 'forcats' was built under R version 4.5.2
## Warning: package 'lubridate' was built under R version 4.5.2
## Warning: package 'survival' was built under R version 4.5.3
## Warning: package 'broom' was built under R version 4.5.2
## Warning: package 'dagitty' was built under R version 4.5.3
## Warning: package 'knitr' was built under R version 4.5.2
## Warning: package 'patchwork' was built under R version 4.5.2
## Warning: package 'epiR' was built under R version 4.5.2

##LLAMAR PAQUETES

library(readxl)
library(dplyr)
library(ggplot2)
library(moments)
library(tidyverse)
library(survival)
library(tibble)
library(broom)
library(dagitty)
library(patchwork)
library(epiR)
library(epitools)
library(stats)
library(psych)
library(e1071)
library(moments)
library(nortest)
library (dagitty)

TALLER: COVID-19 vaccine surveillance report Week 41

1 - Estimación de Effectividad de Vacunas contra COVID-19 en el reino Unido

A. Cual es la medida de frecuencia usada por los autores? (2 puntos)

La medida de frecuencia utilizada es la tasa de incidencia de Covid-19 por cada 100.000 habitantes, en el periodo de observación de 4 semanas, en el periodo de tiempo correspondiente de la semana 37 a la 40 del año 2021. El gráfico de barras representa, el rango de edad por la incidencia estratificado por aquellos participantes con vacunados con almenos 2 dosis en comparación a no vacunados.

B. Que indican las “tasas” de casos de COVID-19 en la semana 41 del 2021 de acuerdo a el estatus de inmunización? (2 puntos)

En el gráfico de barras se observa que la población menor de 30 años presenta una tasa de incidencia de Covid-19 más alta en aquellos pacientes no vacunados, mientras que en aquellos mayores o iguales a 30 años la tasa de incidencia es mayor en vacunados con un máximo de 1500 habitantes por 100.000 en el grupo de 40 a 49 años. Esto corresponde con la figura 1 y 2 del porcentaje acumualado de pacientes con dosis 1 y 2, en el que se observa que la proporción de vacunados es mayor en edades más avanzadas que en edades jóvenes. De igual forma, corresponde a como se establecieron las políticas públicas de prioridad de vacuncación en la población a nivel mundial.

2 - Estimación de medidas de asociación [6 puntos]

a) cúal es el Odds Ratio (OR) de vacunación con respecto al resultado de salud de visitas al servicio de emergencias por variante Delta en Inglaterra? (1 punto)

Total de casos Delta por estatus de vacunación

# Total de casos Delta por  vacunación
total_vacu <- 157400      # Vacunados 14 días post dosis 2
total_novacu <- 257357    # No vacunados


# Casos con visita a emergencias
emerg_vacu <- 6265        # Vacunados con visita a emergencias
emerg_novacu <- 11678     # No vacunados con visita a emergencia

# Casos No visita a emergencias
no_emerg_vacu <- total_vacu - emerg_vacu      # 151,135
no_emerg_novacu <- total_novacu - emerg_novacu # 245,679

#Tabla 2x2

#Tabla 2x2 

tabla_2x2 <- matrix(c(emerg_vacu, no_emerg_vacu,
                       emerg_novacu, no_emerg_novacu),
                    nrow = 2, byrow = TRUE,
                    dimnames = list("Vacunación" = c("Vacunado", "No vacunado"),
                                    "Emergencia" = c("Sí", "No")))
print(tabla_2x2)
##              Emergencia
## Vacunación      Sí     No
##   Vacunado     6265 151135
##   No vacunado 11678 245679

#Calculo OR

OR <- (emerg_vacu * no_emerg_novacu) / (no_emerg_vacu * emerg_novacu)

(1 - OR) * 100
## [1] 12.79215

Esto significa que los pacientes vacunados presentan (12.8) casi 13 veces menor posibilidad de assitir a urgencias por la variante delta.

b) cual es el Riesgo Relativo (RR) de vacunación con respecto al resultado de salud de visitas al servicio de emergencias por variante Delta en Inglaterra? (1 punto)

riesgo_vacu <- emerg_vacu / total_vacu
riesgo_novacu <- emerg_novacu / total_novacu
RR <- riesgo_vacu / riesgo_novacu

(1 - RR) * 100
## [1] 12.28298

Esto significa que los pacientes vacunados presentan (12.3) aproximadamente 12% menor riesgo de asitir a urgencias por la variante delta.

c) cual es la diferencia de riesgo de vacunacion con respecto al resultado de salud de visitas al servicio de emergencias por variante Delta en Inglaterra? (1 punto)

DR <- riesgo_vacu - riesgo_novacu
DR* 100
## [1] -0.5573606

Esto significa que los vacunados tuvieron un riesgo menor absoluto de 0.56 de visitas a emergencias comparado a los vacunados por cada 100 casos de variante delta.

d) cual es la interpretacion global cruda de la “eficacia” vacunal en este escenario? , Esta usted de acuerdo con este resulatado? Si/ No? justifique su respuesta.(3 puntos)

EfVacunaldelta = 1 - RR
EfVacunaldelta *100
## [1] 12.28298

La efectividad cruda sin ajustar por ninguna variable es muy baja. En este caso teniendo en cuenta el contexto de políticas públicas en las que se priorizó a la población mayor, sería razonable ajustar por edad, ya que como vimos en la Figura 1 y 2 las tasas de incidencia mayor por 100.000 habitantes fue en jóvenes no vacunados. En este caso al calcular la efectividad cruda se subestima el efecto real de la vacuna.

3 - Estimacion de medidas de asociacion ajustadas [7 Puntos]

Ahora teniendo en cuenta la edad de los participantes ilustradas en la tabla a continuacion, por favor estime las medidas de asociacion ajustadas por la edad.

Datos estratificados por edad

#menor50

total_vac_50menor <- 85407
total_novac_50menor <- 248803
emerg_vac_50menor <- 2518
emerg_novac_50menor <- 10479
no_emerg_vac_50menor <- total_vac_50menor - emerg_vac_50menor
no_emerg_novac_50menor <- total_novac_50menor - emerg_novac_50menor

#mayor50

total_vac_50mayor <- 71991
total_novac_50mayor <- 8551
emerg_vac_50mayor <- 3747
emerg_novac_50mayor <- 1199
no_emerg_vac_50mayor <- total_vac_50mayor - emerg_vac_50mayor
no_emerg_novac_50mayor <- total_novac_50mayor - emerg_novac_50mayor

#Tabla 2x2

#Menores50

tabla_50menor <- matrix(c(emerg_vac_50menor, no_emerg_vac_50menor,
                      emerg_novac_50menor, no_emerg_novac_50menor),
                   nrow = 2, byrow = TRUE,
                   dimnames = list("Vacunación" = c("Vacunado", "No vacunado"),
                                   "Emergencia" = c("Sí", "No")))
cat("Tabla 2x2 - Estrato <50 años:\n")
## Tabla 2x2 - Estrato <50 años:
print(tabla_50menor)
##              Emergencia
## Vacunación      Sí     No
##   Vacunado     2518  82889
##   No vacunado 10479 238324

#Mayores50

tabla_50mayor <- matrix(c(emerg_vac_50mayor, no_emerg_vac_50mayor,
                        emerg_novac_50mayor, no_emerg_novac_50mayor),
                     nrow = 2, byrow = TRUE,
                     dimnames = list("Vacunación" = c("Vacunado", "No vacunado"),
                                     "Emergencia" = c("Sí", "No")))
cat("Tabla 2x2 - Estrato ≥50 años:\n")
## Tabla 2x2 - Estrato ≥50 años:
print(tabla_50mayor)
##              Emergencia
## Vacunación     Sí    No
##   Vacunado    3747 68244
##   No vacunado 1199  7352

a) Cual es el Odds Ratio (OR) o razon de Mommios ajustados por edad, de vacunacion con respecto al resultado de salud de visitas al servicio de emergencias por variante Delta en Inglaterra? (1 punto)

T_50menor <- total_vac_50menor + total_novac_50menor
T_50mayor <- total_vac_50mayor + total_novac_50mayor

numerador_OR_MH <- (emerg_vac_50menor * no_emerg_novac_50menor) / T_50menor +
             (emerg_vac_50mayor * no_emerg_novac_50mayor) / T_50mayor

denominador_OR_MH <- (no_emerg_vac_50menor * emerg_novac_50menor) / T_50menor +
             (no_emerg_vac_50mayor * emerg_novac_50mayor) / T_50mayor

OR_AJ <- numerador_OR_MH / denominador_OR_MH

(1 - OR_AJ) * 100
## [1] 40.86623

Esto significa que ajustado por Mantel-Haenszel por edad, los vacunados con 2 dosis tienen 40 veces menos posibilidades de visitar el servicio de urgencias comparado con aquellos sin vacunas. Comparado con el OR crudo del punto anterior, observamos que el efecto protector tiene menor veces de posibilidades que los no vacunados.

b) Cual es el Riesgo Relativo (RR) ajustados por edad, de vacunacion con respecto al resultado de salud de visitas al servicio de emergencias por variante Delta en Inglaterra? (1 punto)

numerador_RR_AJ <- (emerg_vac_50menor * total_novac_50menor) / T_50menor +
             (emerg_vac_50mayor * total_novac_50mayor) / T_50mayor

denominador_RR_AJ <- (emerg_novac_50menor * total_vac_50menor) / T_50menor +
             (emerg_novac_50mayor * total_vac_50mayor) / T_50mayor

RR_AJ <- numerador_RR_AJ / denominador_RR_AJ
(1 - RR_AJ) * 100
## [1] 39.39782

Esto significa que los vacunados con dos dosis tienen un 39.41% menor riesgo de visitar el servicio de emergencias por variante Delta en comparación con los no vacunados.

c) Cual es la diferencia de riesgo de vacunacion ajustados por edad, con respecto al resultado de salud de visitas al servicio de emergencias por variante Delta en Inglaterra? (1 punto)

DR_50menor <- (emerg_vac_50menor / total_vac_50menor) - (emerg_novac_50menor / total_novac_50menor)
DR_50mayor <- (emerg_vac_50mayor / total_vac_50mayor) - (emerg_novac_50mayor / total_novac_50mayor)

peso_50menor <- T_50menor / (T_50menor + T_50mayor)
peso_50mayor <- T_50mayor / (T_50menor + T_50mayor)

DR_ajustada <- (peso_50menor * DR_50menor) + (peso_50mayor * DR_50mayor)

DR_ajustada * 100
## [1] -2.730349

Por cada 100 casos de la variante Delta, hay aproximadamente 2.73 menos visitas a emergencias entre los vacunados que entre los no vacunados, después de ajustar por edad.

d) Cual es la interpretacion global ajustados por edad de la “eficacia” vacunal en este escenario? Esta usted de acuerdo con este resulatado? Si/ No? justifique su respuesta.(2 punto)

VE_ajustada <- (1 - RR_AJ) * 100
VE_cruda <- (1 - 0.8775) * 100

Esta efectividad de la vacuna ajustada por la edad, es del 39.41%, Comparado con la efectividad sin ajuste que fue del 12.25% se observa que la edad si actúa como factor de confusión. Y la protección es mayor en comparación al valor obtenido sin ajustar.

e) Realize un DAG que represente la associacion entre la variable vacuna, edad y visitas al servicio de emergencia y comentes sobre la estructura de esta relacion.(2 puntos)

dag <- dagitty('dag {
  Edad [pos="1,0"]
  Vacunacion [exposure, pos="0,1"]
  Emergencia [outcome, pos="2,1"]

  Edad -> Vacunacion
  Edad -> Emergencia
  Vacunacion -> Emergencia
}')
plot(dag)
title(main = "DAG: Vacunación covid")

4 - Otros Sesgos potenciales [8 Puntos]

a) Según esta información, que podemos decir acerca de la robustez de las tasas de ataque y las proporciones?(1 punto)

La tabla nos presenta las tasas de ataque secundarios según cada variante y cada contexto (infección por contacto en viajes, intradomiciliario, contactos no domiciliarios). Estos datos fueron obtenidos de diferentes fuentes secundarias por lo cual no son del todo confiables. Por lo tanto, presentan varias dificultades que limitan la robustez.

Por ejemplo hay variantes y categorías en los que el conteo fue menor a 50 o casos menor a 20 por lo tanto no se tomaron y se determinaron como datos “no disponibles” lo que limita las comparaciones. De igual forma, el reporte aclara que estos datos deben tomarse como el límite inferior, que seguramente la tasas reales son mapas altas pero el sistema no logra captar a todos los infectados. Adicionalmente, se excluyeron resultados genómicos de baja calidad.

Sin embargo, en general la tabla presenta que la tasa de transmisión intradomiciliaria es más alta que la de viajes en todas las variantes, así como que la variante Delta es la que tiene mayor número de infectados pero que al convertirse en proporción según la variante, puede subestimarse su efecto total sobre el etotal de infectados por todas las variantes, ya que al ser la variante dominante su denominador es mucho más grande.

b) Que tipo de sesgos potenciales adicionales podrian estar presentes? (1 punto)

Los posibles sesgos que pueden existir son los de información por clasificación equivocada de casos de viaje y no viaje, y por no detectar contactos infectados que no se hicieron prueba. El mismo reporte reconoce que algunos casos vinculados a viajes pueden no ser identificados correctamente por los métodos que usan y terminar clasificados como no vinculados a viaje o como desconocidos. De igual forma, puede haber clasificación errónea de la variante, ya que se incluyen resultados probables por genotipificación que no son 100% seguros.

En cuanto al sesgo de selección, este se desarrolla en el contexto que solo estpan en el análisis las personas captadas por NHS test and Trace. De igual forma, los sintomáticos se hacen prueba más que los asintomáticos por lo tanto se incluirían solo personas sintomáticas.

También podría existir sesgo de confusión, porque no se ajusta por variables como la edad, comorbilidades, habitantes en casa, o estatus socioeconómico, lo que podría influir en la probabilidad de infectarse.

c) Como se afectaria la estimacion de las tasas de ataque en precensia de sesgo de información? en que direccion seria el sesgo (e.g., hacia el valor nulo o distante del valor nulo) (2 puntos)

El sesgo de información hará que los valores tiendan hacia el valor nulo. Esto pasa debido a que hay contactos que sguramente se infectaron pero que nunca se hicieron pruebas. Esto tiene como consecuencia que el numerador de tasa de ataque sea menor que el real. En este sentido, estas tasas presentadas subestiman el efecto total.

Sin embargo, si el sesgo es diferencial, si los contactos de viajeros son rastreados con más intensidad que los contactos comunitarios, entonces la tasa de ataque en viajeros podría estar mejor estimada que la de los otros grupos. En ese caso el sesgo podría ir en cualquier dirección, ya sea hacia el nulo o lejos del nulo.

d) Enumere métodos de corrección del sesgo de información en análisis epidemiológicos (2 puntos)

En primer lugar, se debería prevenir el sesgo de información con instrumentos validados, el cegamiento de los evaluadores y con protocolos estrictos de recolección. Cuando ya hay sesgo de información en los estudios, se puede realizar: Análisis cuantitativo de sesgos: se prueban diferentes escenarios de error para ver como cambian los resultados. Calibración por regresión: se reemplaza la variable medida con error por su valor esperado condicional. Validación con el gold standard: Se compara la clasificación del sistema de viogilancia con un método precisio usando una submuestra para corregir las estimaciones del grupo completo. Método bayesiano: Se incorpora incertidumbre sobre el error de medición directamente sobre el análisis.

e) Considera usted que hay posibilidad de segos de selección? Si/No? justifique su respuesta (e.g., indique mecanismos y direccion del sesgo en caso de indicar la presencia o indique porque mecanismo el sesgo no es posible). (2 puntos)

Sí, yo considero que sí hay posibilidad de sesgo de selección en estos datos. El principal mecanismo es que solo entran al análisis las personas que fueron detectadas por el sistema NHS Test and Trace. De igual forma se incluyen únicamente los sintomáticos que se hicieron prueba, y se excluyen los asintomáticos o aquellas personas que no tuvieron acceso a la prueba por diferentes razones.Por lo tanto, no representa a todos los infectados. Otro mecanismo es que el rastreo de contactos probablemente fue más intenso para los casos vinculados a viajes internacionales. Esto genera una detección desigual entre grupos. De igual forma, el hecho de que se excluyen variantes con menos de 50 contactos o 20 casos, elimina sistemáticamente las variantes menos frecuentes del análisis e impide evaluar su transmisibilidad real. En cuanto a la dirección del sesgo, probablemente va hacia el valor nulo en general, porque al no captar todos los casos secundarios estamos subestimando las tasas de ataque en todos los grupos.