Estadísticas descriptivas

data <- read.csv("WHO-COVID-19-global-data.csv")
# Convertir primera columna a Fechas
data$Date_reported <- as.Date(data$Date_reported,format="%Y-%m-%d%t")
data$Country_code <- as.factor(data$Country_code)
data$Country <- as.factor(data$Country)
data$WHO_region[data$Country =="undefined"] <- "OTHER"
data$WHO_region <- as.factor(data$WHO_region)

Casos confirmados por día en el mundo

Distribución mundial de casos a partir del 6 de enero de 2020. Datos de la Organizacion Mundial de la Salud

library(ggplot2)
# creo el objeto ggplot
grafica <- ggplot(data, aes(Date_reported, data$New_cases))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=7))
grafica <- grafica + labs(y= "Nuevos casos", x="Fecha", title= "Nuevos Casos Covid 19 Global")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica

# creo el objeto ggplot
grafica <- ggplot(data, aes(Date_reported, data$Cumulative_cases, fill=WHO_region))
grafica <- grafica + geom_bar(stat = "identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=7))
grafica <- grafica + labs(y= "Casos Acumulados ", x="Fecha", title= "Acumulados Covid 19 Global")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica

Muertes confirmadas por semana en el mundo

# creo el objeto ggplot
grafica <- ggplot(data, aes(data$Date_reported, data$New_deaths))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevas muertes", x="Fecha", title= "Nuevas muertes Covid 19 Global")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica

# creo el objeto ggplot
grafica <- ggplot(data, aes(data$Date_reported, data$Cumulative_deaths, fill=WHO_region))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Muertes", x="Fecha", title= "Muertes acumuladas por region Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica

grafica <- ggplot(data, aes(data$Date_reported, data$New_deaths, fill=WHO_region))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Muertes", x="Fecha", title= "Muertes diarias por region Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica <- grafica + facet_grid(data$WHO_region~.)
grafica

Nuevos casos Americas

america <- subset(data, data$WHO_region=="AMRO")
# creo el objeto ggplot
grafica <- ggplot(america, aes(Date_reported, america$New_cases))
grafica <- grafica + geom_bar(stat = "identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevos casos Americas", x="Fecha", title= "Covid 19 America")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica

Mayores países de la región

codes <- c("BR","US", "CO","PE", "MX", "AR", "CA", "CL")
countries <- america[america$Country_code %in% codes,]
# creo el objeto ggplot
grafica <- ggplot(countries,aes(x=Date_reported, y=Cumulative_cases) )
grafica <- grafica + geom_line(aes(color=Country), size=2, alpha=0.7)
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevos casos acumulados", x="Fecha", title= "Acumulado de casos diarios Americas Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica

# creo el objeto ggplot
grafica <- ggplot(countries,aes(x=Date_reported, y=Cumulative_deaths) )
grafica <- grafica + geom_line(aes(color=Country), size=2, alpha=0.7)
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Muertes acumuladas", x="Fecha", title= "Muertes acumuladas Americas Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica

Comparación últimas 8 semanas en América

Coordenadas paralelas

# Seleccionando las fechas
dates <- c(as.Date("2020-05-25"), as.Date("2020-05-18"), as.Date("2020-05-11"), as.Date("2020-05-4"), as.Date("2020-04-27"), as.Date("2020-04-20"), as.Date("2020-04-13"), as.Date("2020-04-06"))
lastWeeks <- countries[countries$Date_reported %in% dates,]

# Convert the dataframe from long to wide. 
# See data manipulation: https://datascienceplus.com/data-manipulation-in-r-with-reshape2/
library(reshape2)
lastWeeks_wide <- dcast(lastWeeks, Country_code + Country ~ Date_reported, value.var = 'New_cases')

# Librería de coordenadas paralellas
library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
grafica <- ggparcoord(lastWeeks_wide,
           # This adds all the columns as axes of the plot
           columns = 3:10,
           # This is the column in the dataset with the categories to group the datapoints
           groupColumn = "Country",
           # How to scale the variables in the parallel coordinate plot
           scale = 'globalminmax',
           # Enable the visualization of points on axes
           showPoints = TRUE,
           # Add title
           )

# Paleta de color personalizada
colorSequence <- c("#b7120e","#b5a04d","#005fb6","#fcdb02","#0c3f50","#f67f25","#21cae7","#1c1d4b", "#FF9900")
grafica <- grafica + scale_color_manual(values = colorSequence)

# Ocultar líneas horizontales
grafica <- grafica + theme( 
                           panel.background = element_rect(fill = NA),
                           panel.grid.major = element_line(colour = "grey90"),
                           panel.grid.major.y = element_blank(),
                           panel.grid.minor.y = element_blank()
                           )

# Titulo y etiquetas 
grafica <- grafica + labs(title = "Últimas ocho semanas en los mayores países de América", subtitle = "Datos reportados cada lunes a partir de Abril 6", x = "Semanas", y = "Nuevos Casos")

# Mostrar gráfica
grafica


Gráfica de tendencia sobre gráfica de barras

La gráfica de la curva de tendencia usando la function geom_smooth() necesita que los datos del eje X sean parte de una secuencia continua. Es decir que la variable usada para el eje X no puede ser una variable categoria o factor. En nuestro caso, al aplicar la function as.Date() a la columna de fechas, esta se covierte en una secuencia que podemos usar para graficar la curva con geom_smooth(). Naturalmente, los datos del eje Y deben numéricos, pero a diferencia de las gráficas anteriores, en este caso necesitamos hacer una operación con rowsum() para tener columnas con la sumatoria de todos los paises por cada una de las fechas.

# Obtengo sumatoria de variables por factor
dataNew <-rowsum(data[,5:8],group = data$Date_reported)

# conservo la columna Date_reported
dataNew$Date_reported<-row.names(dataNew)

# Transformo los datos a fechas
dataNew$Date_reported<-as.Date(dataNew$Date_reported)

grafica <- ggplot(dataNew, aes(Date_reported, New_deaths))
grafica <- grafica + geom_bar(stat = "identity")
grafica <- grafica + geom_smooth(method = "loess")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevas muertes", x="Fecha", title= "Nuevas muertes Covid 19 Global")
grafica
## `geom_smooth()` using formula 'y ~ x'