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("~/RTALLERSALUD") #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("RTALLERSALUD.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
Fecha <- seq(from = as.Date("2020-01-22"), to = as.Date("2020-12-18"), by = "day" )
#casos confirmados
vec1 <- as.vector(conf_mex)
vec2 <- vec1[5:336]
num1 <- as.numeric(vec2)
Confirmados <- as.vector(num1)
#decesos
vec1 <- as.vector(dec_mex)
vec2 <- vec1[5:336]
num1 <- as.numeric(vec2)
Decesos <- as.vector(num1)
#recuperados
vec1 <- as.vector(rec_mex)
vec2 <- vec1[5:336]
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 presentan visualizaciones que representan los datos de confirmados, decesos y recuperados para 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
Esto es usando el paquete “plotly”
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)3. 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
datos2 <- read.csv("Diagnosticos18.csv", encoding= "latin1")
class(datos2)## [1] "data.frame"
head(datos2)## Estado Jurisdiccion Uneme CLUES Cve.Persona Genero
## 1 Guerrero ACAPULCO UNEME EC ACAPULCO GRSSA012354 GuACUN2751 Mujer
## 2 Guerrero ACAPULCO UNEME EC ACAPULCO GRSSA012354 GuACUN5442 Mujer
## 3 Guerrero ACAPULCO UNEME EC ACAPULCO GRSSA012354 GuACUN5995 Mujer
## 4 Guerrero ACAPULCO UNEME EC ACAPULCO GRSSA012354 GuACUN6110 Hombre
## 5 Guerrero ACAPULCO UNEME EC ACAPULCO GRSSA012354 GuACUN6113 Hombre
## 6 Guerrero ACAPULCO UNEME EC ACAPULCO GRSSA012354 GuACUN5995 Mujer
## Cve.Diagnostico Diagnostico Fecha.Diagnostico
## 1 E11.9 Diabetes 08/01/2018
## 2 E11.9 Diabetes 08/01/2018
## 3 E11.9 Diabetes 08/01/2018
## 4 E11.9 Diabetes 08/01/2018
## 5 E11.9 Diabetes 08/01/2018
## 6 E78.6 Dislipidemias 08/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=Jurisdiccion, y=Diagnostico)) +
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
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