Se identificaron los pacientes que más complicaciones han tenido en 2021. En este sentido, se analizaron 4 variables: enfermedad crónica, fecha de ingreso y/o egreso, mes, entidad federativa, muertes.
La base de datos de COVID-19 fue obtenia de la siguiente liga: Datos_abiertos_historicos_2021.
Los datos que analizaremos aquí corresponden hasta el mes de octubre de 2021.
library(tidyverse) # Usamos el tidyverse que contine un conjunto de librerias para analizar datos
# y hacer visualizaciones.
theme_set(theme_light())
# Los datos fueron descargados de manera manual.
covid <- read_csv("data/covid-19/211001COVID19MEXICO.csv")
Cada fila en esta tabla representa a una persona que ha sido un caso positivo de Covid-19.
library(tidyverse)
head(covid) %>% knitr::kable()
| FECHA_ACTUALIZACION | ID_REGISTRO | ORIGEN | SECTOR | ENTIDAD_UM | SEXO | ENTIDAD_NAC | ENTIDAD_RES | MUNICIPIO_RES | TIPO_PACIENTE | FECHA_INGRESO | FECHA_SINTOMAS | FECHA_DEF | INTUBADO | NEUMONIA | EDAD | NACIONALIDAD | EMBARAZO | HABLA_LENGUA_INDIG | INDIGENA | DIABETES | EPOC | ASMA | INMUSUPR | HIPERTENSION | OTRA_COM | CARDIOVASCULAR | OBESIDAD | RENAL_CRONICA | TABAQUISMO | OTRO_CASO | TOMA_MUESTRA_LAB | RESULTADO_LAB | TOMA_MUESTRA_ANTIGENO | RESULTADO_ANTIGENO | CLASIFICACION_FINAL | MIGRANTE | PAIS_NACIONALIDAD | PAIS_ORIGEN | UCI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2021-10-01 | z482b8 | 2 | 12 | 09 | 2 | 09 | 09 | 012 | 1 | 2020-10-16 | 2020-10-16 | NA | 97 | 2 | 41 | 1 | 97 | 99 | 99 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 97 | 2 | 97 | 1 | 99 | México | 97 | 97 |
| 2021-10-01 | z49a69 | 1 | 12 | 23 | 1 | 23 | 23 | 004 | 2 | 2020-07-20 | 2020-07-17 | 2020-07-21 | 1 | 1 | 66 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 1 | 2 | 2 | 1 | 2 | 97 | 2 | 97 | 2 | 99 | México | 97 | 1 |
| 2021-10-01 | z23d9d | 1 | 12 | 22 | 2 | 24 | 22 | 009 | 1 | 2021-01-05 | 2021-01-05 | NA | 97 | 2 | 29 | 1 | 97 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 98 | 2 | 2 | 2 | 2 | 97 | 2 | 97 | 6 | 99 | México | 97 | 97 |
| 2021-10-01 | z24953 | 1 | 12 | 09 | 1 | 09 | 09 | 010 | 1 | 2020-10-15 | 2020-10-15 | NA | 97 | 2 | 40 | 1 | 98 | 99 | 99 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 2 | 2 | 97 | 7 | 99 | México | 97 | 97 |
| 2021-10-01 | zz8e77 | 2 | 12 | 09 | 2 | 09 | 09 | 002 | 1 | 2020-04-16 | 2020-04-10 | NA | 97 | 2 | 34 | 1 | 97 | 2 | 2 | 2 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 97 | 2 | 97 | 6 | 99 | México | 97 | 97 |
| 2021-10-01 | z1b0d1 | 1 | 12 | 01 | 1 | 01 | 01 | 003 | 1 | 2020-04-23 | 2020-04-21 | NA | 97 | 2 | 48 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 99 | 1 | 4 | 2 | 97 | 5 | 99 | México | 97 | 97 |
# La tabla de Covid.19 tiene muchos datos
# para hacer mas rapido los analisis
# voy a seleccionar las solo las columnas que usaremos aqui.
covid_sub <-
covid %>%
select(FECHA_ACTUALIZACION, ENTIDAD_UM, SEXO, TIPO_PACIENTE, FECHA_INGRESO, INTUBADO, TABAQUISMO, FECHA_DEF)
Los metadatos asociados a esta tabla los podemos encontrar en el diccionario de datos link.
Por ejemplo, podemos cargar los datos de la entidades usando la tabla de Excel.
library(readxl) # Usamos este paquete para leer archivos de excel en R.
# Cargemos entonces los metadatos de las variables que usaremos en el analisis.
entidades <- read_excel("data/covid-19/diccionario_datos_covid19/201128 Catalogos.xlsx", sheet = "Catálogo de ENTIDADES") %>%
rename(ENTIDAD_UM = CLAVE_ENTIDAD)
# Identifica el tipo de atención que recibió el paciente en la unidad. Se denomina como ambulatorio si regresó a su casa o se denomina como hospitalizado si fue ingresado a hospitalización.
tipo_de_paciente <- read_excel("data/covid-19/diccionario_datos_covid19/201128 Catalogos.xlsx", sheet = "Catálogo TIPO_PACIENTE") %>%
rename(TIPO_PACIENTE = CLAVE)
intubado <- read_excel("data/covid-19/diccionario_datos_covid19/201128 Catalogos.xlsx", sheet = "Catálogo TIPO_PACIENTE") %>%
rename(TIPO_PACIENTE = CLAVE)
## Ahora agregemos estos datos a nuestra tabla principal.
covid_sub <- inner_join(covid_sub, entidades) %>%
inner_join(tipo_de_paciente)
Primero visualizaremos el número de casos detectados diariamente.
covid_sub %>%
group_by(FECHA_INGRESO) %>%
summarise(casos = n()) %>%
ggplot(aes(x = FECHA_INGRESO, casos)) +
geom_line(size = 1, color = "pink") +
labs(
x = "Fecha",
y = "No. de casos detectados\ncada día"
)
En esta gráfica podemos ver claramente el comportamiento de la pandemia en México. También observamos las dos principales olas que han ocurrido en el país. Ahora veamos el comportamiento de la pandemia por estado.
covid_sub %>%
group_by(FECHA_INGRESO, ENTIDAD_FEDERATIVA) %>%
summarise(casos = n()) %>%
ggplot(aes(x = FECHA_INGRESO, y = casos, group = ENTIDAD_FEDERATIVA)) +
geom_line() +
gghighlight::gghighlight(
ENTIDAD_FEDERATIVA %in% covid_sub$ENTIDAD_FEDERATIVA, unhighlighted_params = list(size = 1/4, colour = alpha("pink", 0.7))
) +
facet_wrap(~ENTIDAD_FEDERATIVA) +
scale_y_log10() +
labs(y = "No. Casos")
El color en rosa muestra cada uno de los estados, el estado que estamos viendo en cada panel esta remarcado en color negro.
Primero leyendo el diccionario de datos vemos que existe la variable FECHA_DEF la cual identifica la fecha en que el paciente falleció. Suponemos que un dato faltante en esta columna indica que el paciente sobrevivió a la enfermedad.
# Agregemos una columna nueva indicando si el paciente murio.
covid_sub$murio <- !is.na(covid_sub$FECHA_DEF)
# Un 1 indica que el pasiente fue intubado.
covid_sub$INTUBADO <- covid_sub$INTUBADO == 1
model0 <- glm(murio ~ INTUBADO, data = covid_sub, family = "binomial")
print('Probabilidad de morir dado que el paciente no es intubado: ')
## [1] "Probabilidad de morir dado que el paciente no es intubado: "
exp(coef(model0)[1]) / (1+exp(coef(model0)[1]))
## (Intercept)
## 0.02634083
print('Probabilidad de morir dado que el paciente es intubado: ')
## [1] "Probabilidad de morir dado que el paciente es intubado: "
exp(sum(coef(model0))) / (1+exp(sum(coef(model0))))
## [1] 0.7593551
La enfermedad del Covid-19 en México ocasionada por el coronavirus SARS-MERS 2 se propagó por todo el país con (con un numero de pacientes infectados de 10, 702, 352 hasta Octubre del 2021), siendo la Ciudad de México el más afectado de la república con 4, 100, 103 pacientes positivos de los cuales 66, 449 han fallecido. En general, se obtuvo una probabilidad de mortalidad del 76% a aquellos pacientes que fueron intubados. Finalmente, los meses de diciembre del 2020 y agosto del 2021 representan un mayor número de contagios, que fueron la primera y la segunda ola respectivamente.
NOTA: En la pagina de salud, los datos de el mes de diciembre no se encuentran disponibles. Al seleccionar el enlace de descarga se genera un error en el buscador. Por este motivo, se decidió no incorporar código para actualizar el análisis a la fecha de hoy, ya que al hacerlo se generaría un error y el análisis no correría.
Este análisis fue realizado bajo la siguiente sesión de R.
sessionInfo()
## R version 4.0.3 (2020-10-10)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur 10.16
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] readxl_1.3.1 forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2
## [5] purrr_0.3.4 readr_1.4.0 tidyr_1.1.3 tibble_3.0.4
## [9] ggplot2_3.3.5 tidyverse_1.3.0
##
## loaded via a namespace (and not attached):
## [1] tidyselect_1.1.0 xfun_0.19 haven_2.3.1 colorspace_2.0-0
## [5] vctrs_0.3.6 generics_0.1.0 htmltools_0.5.0 yaml_2.2.1
## [9] rlang_0.4.11 pillar_1.4.7 glue_1.4.2 withr_2.3.0
## [13] DBI_1.1.0 dbplyr_2.0.0 modelr_0.1.8 lifecycle_0.2.0
## [17] munsell_0.5.0 gtable_0.3.0 cellranger_1.1.0 rvest_0.3.6
## [21] evaluate_0.14 labeling_0.4.2 knitr_1.30 fansi_0.4.1
## [25] highr_0.8 broom_0.7.2 Rcpp_1.0.7 scales_1.1.1
## [29] backports_1.2.0 jsonlite_1.7.1 farver_2.0.3 fs_1.5.0
## [33] hms_0.5.3 digest_0.6.27 stringi_1.5.3 grid_4.0.3
## [37] cli_2.2.0 tools_4.0.3 gghighlight_0.3.0 magrittr_2.0.1
## [41] crayon_1.3.4 pkgconfig_2.0.3 ellipsis_0.3.1 xml2_1.3.2
## [45] reprex_0.3.0 lubridate_1.7.9.2 assertthat_0.2.1 rmarkdown_2.5
## [49] httr_1.4.2 rstudioapi_0.13 R6_2.5.0 compiler_4.0.3