Documento sobre el taller de ciencia de datos aplicado a salud pública y epidemiológica

Esta es una actividad basada en el taller de ciencia de datos aplicado a salud pública y epidemiológica para obtener nuevos conocimiento del lenguaje de programación de R.

Se analizarán y modelarán los datos sustraidos de "“JOHNS HOPKINGS University of Medicine”,relacionados con el virus COVID-19.

Se van a utlizar una recolección de datos libres de:

Importación de paquetes/ librerias

Esta libreria nos ayudará a tener una mejor gestión de paquetes.

setwd("~/EALMV9/U1A5") #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")
# base64enc = Una manera de codificar datos
# htmltools = genera widgets interactivos
# mine y xfun = descarga de datos
# prettydoc = mejora la presentacion del documento
# readr = leer datos
# DT = tablas de datos
# dplyr = manejo de datos
# ggplot2 = graficas
# plotly = grafica interactiva
# gganimate y gifski = crear animaciones
# scales = manejar las escalas a gusto propio

Descarga este código

Se deja disposición el uso de este código, a quien guste utilizarlo.

xfun::embed_file("U1A5.Rmd")

Download U1A5.Rmd

Datos globales de Johns Hopkings University para México

Lo vamos a hacer 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

Aqui vamos a guardar las url de los casos confimados, muertes y recuperación de COVID-19

# Se realizan las declaraciones de las variables que contendrán las url en donde se encuentran los datos crudos de confirmados, decesos, recuperados
url_confi <- "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"

url_muertes <- "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_confi)
datos_muertes <- read.csv(url_muertes)
datos_recuperados <- read.csv(url_recuperados)

#definir variables
conf_mex <- t(datos_conf[datos_conf$Country.Region == "Mexico" ,])
mue_mex<- t(datos_muertes[datos_muertes$Country.Region == "Mexico" ,])
rec_mex<- t(datos_recuperados[datos_recuperados$Country.Region == "Mexico" ,])

Formatear datos

El objetivo de formatear los datos son:

  • 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("2021-02-14"), by = "day")

# Casos confirmados
vec1 <- as.vector(conf_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Confirmados <- as.vector(num1)

# Muertes
vec1 <- as.vector(mue_mex)
vec2 <- vec1[5:394]
num1 <- as.numeric(vec2)
Muertes <- 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, Muertes,Recuperados)

Graficación de datos

A continuación se presentan visualizaciones que representan los datos de confirmados, muertes y recuperados en México #### Gráfica estática

# Aqui se utiliza la libreria de ggplot para hacer graficas estáticas y de así representar los datos  de una manera mas amigable.
# Se usa una geometria de línea para dar estetica de mapa
gcov <- ggplot(data = datos1) +
  geom_line(aes(Fecha, Confirmados, colour = "Confirmados")) +
  geom_line(aes(Fecha, Muertes, colour = "Muertes")) +
  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

Aqui se usara un paquete llamado “plotly”

ggplotly(gcov)

Gráfica Animada

Utilizaremos una libreria llamada “gifski” que nos hara una gráfica animada

ggplot(data = datos1) +
  geom_line(aes(Fecha, Confirmados, colour = "Confirmados")) +
  geom_line(aes(Fecha, Muertes, colour = "Muertes")) +
  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 utilizada para poder crear una tabla y una gráfica de las enfermedades en Sonora: https://datos.gob.mx/busca/dataset/expediente-clinico-electronico-unemes-enfermedades-cronicas--2018.

Importar datos

datos2 <- read.csv("Diagnosticos18.csv", encoding = "latin1")
class(datos2)
## [1] "data.frame"
head(datos2)
##       Estado Jurisdiccion             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.Diagnostico   Diagnostico Fecha.Diagnostico
## 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

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

Formateo de datos

Sonoras<- t(datos2[datos2$Estado=="Sonora", ])
Sonoras<- (datos2[datos2$Estado=="Sonora", ])

Graficación

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)")