TALLER DE CIENCIA DE DATOS APLICADA A SALUD PÚBLICA Y EPIDEMIOLOGÍA
Acerca de este documento
Este es un documento que explica de manera demostrativa una forma de procesar datos abiertos oficiales de México y convertirlos en análisis y visualizaciones que puedan ser útiles para los ciudadanos ante la pandemia por COVID-19
El análisis fue realizado con el objetivo de difundir y democratizar el uso y análisis de datos en México para de esta forma crear una masa crítica que nos permita tomar mejores decisiones en lo colectivo con mejores herramientas y métodos.
El código aquí usado está escrito en el lenguaje de programación abierto R y puede ser descargado y así como también sus datos en los hipervínculos que se encuentran abajo.
Ejercicios incluidos
Este es un taller de ciencia de datos (data science) gratuito con una duración de 3 horas y media, en el cual se pretende introducir al público al tema del análisis de las métricas de salud pública así como de la evolución y modelación de la pandemia de COVID-19 usando datos oficiales.
- En este taller se verán 3 ejercicios
- Datos globales de Johns Hopkins University para México
- Datos de coronavirus.gob.mx para Sonora y Sinaloa
- Datos de enfermedades crónicas en Sonora
Importación de paquetes / bibliotecas
setwd("~/R Scripts") #Directorio de trabajo
library(pacman) #para importar la biblioteca "pacman"
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc","readr", "knitr","DT","dplyr", "ggplot2","plotly", "gganimate","gifski","scales")Descarga de este código
Para fines de reproducibilidad se incluye todo el código para su descarga
xfun::embed_file("U1A5.Rmd")Datos globales de Johns Hopkins University para México
De lo general a lo particular
Datos obtenidos de:
“Coronavirus COVID-19 Global Cases by the Center for Systems Science and Engineering (CSSE) at Johns Hopkins University (JHU)” https://coronavirus.jhu.edu/map.html
Importar datos de JHU
#se realiza la declaración de las variables que contendrán las url en donde se encuentran los datos crudos de confirmados, decesos, recuperados
url_conf <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"
url_decesos <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv"
url_recuperados <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_recovered_global.csv"
#Leer los archivos .csv de las url
datos_conf <- read.csv(url_conf)
datos_decesos <- read.csv(url_decesos)
datos_recuperados <- read.csv(url_recuperados)
#definir variables
conf_mex <- t(datos_conf[datos_conf$Country.Region=="Mexico" ,])
dec_mex <- t(datos_decesos[datos_decesos$Country.Region=="Mexico" ,])
rec_mex <- t(datos_recuperados[datos_recuperados$Country.Region=="Mexico" ,])Formatear datos
- Eliminar campos no utilizables
- Formatear las fechas
- Crear un marco de datos (data frame)
# Vector de fecha (toma desde el 22 de enero de 2020, hasta el 14 de febrero de 2021).
Fecha <- seq(from = as.Date("2020-01-22"), to = as.Date("2021-02-14"), by = "day")
# Casos confirmados
vec1 <- as.vector(conf_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Confirmados <- as.vector(num1)
# Decesos
vec1 <- as.vector(dec_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Decesos <- as.vector(num1)
# Recuperados
vec1 <- as.vector(rec_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Recuperados <- as.vector(num1)
# Generación de un marco de datos ("data frame")
datos1 <- data.frame(Fecha, Confirmados, Decesos, Recuperados)Graficación de datos
A continuación, se presenta una visualización de los datos de: casos confirmados, decesos y recuperaciones en México.
Gráfica estática
gcov <- ggplot(data = datos1) +
geom_line(aes(Fecha, Confirmados, colour = "Confirmados")) +
geom_line(aes(Fecha, Decesos, colour = "Decesos")) +
geom_line(aes(Fecha, Recuperados, colour = "Recuperados")) +
xlab("Fecha") +
ylab("COVID-19 en México") +
labs(colour = "casos") +
ggtitle("Casos de COVID-19 en México (Fuente: JHU CSSE)") +
scale_y_continuous(labels = comma)
gcovGráfica interactiva
ggplotly(gcov)Gráfica animada
ggplot(data = datos1) +
geom_line(aes(Fecha, Confirmados, colour = "Confirmados")) +
geom_line(aes(Fecha, Decesos, colour = "Decesos")) +
geom_line(aes(Fecha, Recuperados, colour = "Recuperados")) +
xlab("Fecha") +
ylab("COVID-19 en México") +
labs(colour = "casos") +
ggtitle("Casos de COVID-19 en México (Fuente: JHU CSSE)") +
scale_y_continuous(labels = comma) +
transition_reveal(Fecha)Datos de enfermedades crónicas en Sonora.
Fuente de los datos Obtenida de: https://datos.gob.mx/busca/dataset/expediente-clinico-electronico-unemes-enfermedades-cronicas--2018
URL de datos CSV crudos: http://www.cenaprece.salud.gob.mx/descargas/Excel/Diagnosticos18.csv
Expediente Clínico Electrónico UNEMES (unidades de especialidades médicas) Enfermedades Crónicas 2018
- El Centro Nacional de Programas Preventivos y Control de Enfermedades (CENAPRECE), es el órgano desconcentrado de la Secretaría de Salud responsable de conducir e implementar los programas sustantivos para la prevención y control de enfermedades, para reducir la morbilidad y mortalidad en la población mexicana.
Importar datos de enfermedades crónicas en Sonora
datos2 <- read.csv("Diagnosticos18.csv", encoding = "latin1")
class(datos2)## [1] "data.frame"
head(datos2)## Estado Jurisdicción Uneme CLUES Cve.Persona Genero
## 1 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN5910 Mujer
## 2 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN5953 Mujer
## 3 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN6045 Mujer
## 4 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN6091 Mujer
## 5 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN6138 Mujer
## 6 Guanajuato IRAPUATO UNEME EC IRAPUATO GTSSA017250 GuIRUN5706 Hombre
## Cve.Diagnóstico Diagnóstico Fecha.Diagnótico
## 1 E78.2 Dislipidemias 02/01/2018
## 2 E78.2 Dislipidemias 02/01/2018
## 3 E78.2 Dislipidemias 02/01/2018
## 4 E78.2 Dislipidemias 02/01/2018
## 5 E78.2 Dislipidemias 02/01/2018
## 6 E78.2 Dislipidemias 02/01/2018
Formateo de datos
SonoraS <- t(datos2[datos2$Estado == "Sonora" ,])
SonoraS <- (datos2[datos2$Estado == "Sonora" ,])Graficación
# Gráfico agrupado
ggplot(SonoraS, aes(fill = Jurisdicción, y = Diagnóstico)) +
geom_bar(position = "dodge", stat = "count") +
xlab("Número de casos") +
ylab("Diagnóstico") +
ggtitle("Enfermedades crónicas en Sonora, 2018 (CENAPRECE)")Tabla interactiva de datos de enfermedades crónicas
datatable(datos2)## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html