RTALLERSALUD

Juan Badouin

19/12/2020

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
  1. Datos globales de Johns Hopkins University para México
  2. Datos de coronavirus.gob.mx para Sonora y Sinaloa
  3. 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")
Download 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)
gcov

Grá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

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