COVID 19

Ejercicio de la segunda clase de visualización de datos de la especialización en analítica de datos de la universidad Icesi.

data <- read.csv("WHO-COVID-19-global-data.csv", header = TRUE,sep=",",  encoding="UTF-8")

Casos confirmados global

Se construye la gráfica global de nuevos casos reportados de coronavirus en el mundo.

library(ggplot2)
plotBase <- ggplot(data, aes(data$X.U.FEFF.Date_reported, data$New_cases))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Global")
# plot chart
plotBase

Y la gráfica de nuevas muertes reportadas a nivel global.

library(ggplot2)
plotBase <- ggplot(data, aes(data$X.U.FEFF.Date_reported, data$New_deaths))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevas Muertes", x="Fecha", title="Covid 19 Global")
# plot chart
plotBase

Segmentación por Regiones

En las gráficas anteriores no es claro el aporte continental a los nuevos casos globales. Para esto, se incluye la marca de color en la construcción de la gráfica.

library(ggplot2)
plotBase <- ggplot(data, aes(data$X.U.FEFF.Date_reported, data$New_cases, fill=data$WHO_region))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Global")
# plot chart
plotBase

Segmentación por Regiones

Para hacer un análisis más adecuado, es idóneo segmentar por continente los datos antes de la construcción del display.

library(ggplot2)
america <- subset(data, data$WHO_region=="AMRO")
plotBase <- ggplot(america, aes(america$X.U.FEFF.Date_reported, america$New_cases))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 America")
# plot chart
plotBase

Brazil

Finalmente, se quiere conocer el aporte individual de un país. Se construye un lineplot con la información histórica de Brazil.

library(ggplot2)
brazil <- subset(data, data$Country=="Brazil")
plotBase <- ggplot(brazil, aes(brazil$X.U.FEFF.Date_reported, brazil$New_cases, group=Country))
plotBase <- plotBase + geom_line()
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Brazil")
# plot chart
plotBase

Amazonia

Una de las preocupaciones actuales, es la forma en que Brazil puede influir en la aparición de nuevos casos en la región de la amazonía. Para evidenciar esto resulta interesante comparar el aporte de casos puesto por Brazil contra los demás países que comparten la amazonía: Colombia, Perú, Bolivia y Venezuela.

library(ggplot2)
amazonia <- subset(data, data$Country %in% c("Brazil","Colombia","Peru", "Bolivia (Plurinational State of)", "Venezuela (Bolivarian Republic of)"))
plotBase <- ggplot(amazonia, aes(amazonia$X.U.FEFF.Date_reported, amazonia$New_cases, fill=amazonia$Country))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Amazonia")
# plot chart
plotBase

Comparación entre países

También resulta interesante comparar la aparición de nuevos casos contra otros países que hayan tenido picos de contagios y de muertes. Inicialmente se realizó contra los países europeos que ya están levantando restricciones: Francia, Italia, Reino Unido y España.

library(ggplot2)
topCountries <- subset(data, data$Country %in% c("Brazil","Italy", "Spain", "The United Kingdom", "France"))
plotBase <- ggplot(topCountries, aes(topCountries$X.U.FEFF.Date_reported, topCountries$New_cases, group=topCountries$Country))
plotBase <- plotBase + geom_line()
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Países Mayor Número de Casos (excluyendo USA)")
plotBase <- plotBase + facet_grid(Country ~.)
# plot chart
plotBase

Así mismo, es interesante compararlo contra el país que en este momento lidera el número de contagios: Estados Unidos. En este caso la escala del eje y cambia para adaptarse al pico máximo que se obtuvo en USA entre el 24 y el 26 de Abril.

library(ggplot2)
brzusa <- subset(data, data$Country %in% c("Brazil","United States of America"))
plotBase <- ggplot(brzusa, aes(brzusa$X.U.FEFF.Date_reported, brzusa$New_cases, group=brzusa$Country))
plotBase <- plotBase + geom_line()
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 BRZ vs USA")
plotBase <- plotBase + facet_grid(Country ~.)
# plot chart
plotBase

Conclusiones

Sin lugar a dudas el uso de herramientas visuales para el análisis de datos resulta mucho más comprensible e intuitivo en grandes volumenes de datos. Combinar marcas adicionales, como el color, aporta significativamente a la forma en que podemos interpretarlos y sacar conclusiones.