Analisis de datos abiertos de covid-19 en Mexico
Introduccion
En el presente caso de estudio se analizan los datos abiertos de contagios por covid-19 en Mexico, con el fin de analizar el crecimiento de contagios y las causas por las cual se presentan crecimientos exponenciales de contagios en Sonora y Sinaloa.
Los datos utilizados se encuentran disponibles en: disponibles en: https://datos.covid-19.conacyt.mx/#downZCSV
library(pacman)
p_load(markdown, knitr, tidyr, tidyverse, lubridate, summarytools, ggpubr, kableExtra, reshape2, gridExtra, sf, tmap, readr, devtools, plotly, Rcpp, gganimate, gifski, Hmisc )Importar datos
setwd("~/Aplicada")
library(readr)
covid <- read_csv("Casos_Diarios_Estado_Nacional_Confirmados.csv")## Rows: 33 Columns: 611
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (1): nombre
## dbl (610): cve_ent, poblacion, 18/02/2020, 19/02/2020, 20/02/2020, 21/02/202...
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(covid)Casos diarios en Sinaloa
Sinaloa <- t(covid[covid$nombre == "SINALOA" ,])
Sinaloa <- as.vector(Sinaloa)
Sinaloa <- Sinaloa[4:129]
Sinaloa <- as.numeric(Sinaloa)
Sinaloa <- as.vector(Sinaloa)
cSinaloa <- cumsum(Sinaloa)Casos diarios en Sonora
Sonora <- t(covid[covid$nombre == "SONORA",])
Sonora <- as.vector(Sonora)
Sonora <- Sonora[4:129]
Sonora <- as.numeric(Sonora)
Sonora <- as.vector(Sonora)
cSonora <- cumsum(Sonora)Fecha
Fecha = seq(from=as.Date("2020-01-07"), to = as.Date("2020-05-11"), by = 'day')ColSon <- data.frame(Fecha,Sinaloa,Sonora) # Casos diarios
cColSon <- data.frame(Fecha, cSinaloa, cSonora) # Casos acumuladosMedidas de tendencia central
Media
Valor promedio de contagios
mean(Sinaloa)## [1] 68.68254
mean(Sonora)## [1] 76.88889
A pesar de que entre Sinaloa y Sonora tiene una población similar, la balanza se inclina hacia Sonora donde hay mayor caso de contagios, esto puede ser debido a su cercanía con la frontera entre Mexcio y USA.
Mediana
Medida de tendencia central
median(Sinaloa)## [1] 47
median(Sonora)## [1] 16
En este caso el valor expresa que en Sinaloa tuvo al principio de la pandemia un mayor porcentaje de casos confirmados.
Varianza
Medida que representa la dispersion que existe en un conjunto de datos para saber su variabilidad
var(Sinaloa)## [1] 5777.578
var(Sonora)## [1] 10873.92
Con estos resultados podemos ver que en Sonora hay una mayor variabilidad en cuanto a casos positivos.
Desviación Estandar
Este medida sirve para interpretar la cuantificación de la variación o la dispersión.
sd(Sinaloa)## [1] 76.01038
sd(Sonora)## [1] 104.2781
Estos datos expresan, el caso de comportamiento entre Sinaloa y Sonora respecto a la pandemia, dando a enteder que los casos de Covid-19, crecen mas en Sonora.
Graficos de casos diarios confirmados en Sinaloa
plot(Sinaloa)En el grafico de casos diarios confirmados en el estado de Sinaloa podemos observar como los casos por contagio de covid-19 van en aumento conforme pasan los meses, iniciando con un comportamiento muy lineal de contagios en los primeros 40 dias para despues aumentar de manera exponencial.
Graficos de casos diarios confirmados en Sonora
plot(Sonora)En el grafico de casos diarios confirmados en sonora podemos observar un comportamiento muy similar en contagios por covid-19, conforme pasan los meses los casos se presentan con mayor frecuencia, iniciando con un comportamiento bastante lineal o sin muchas variaciones en cuanto a los casos, para despues presentar un crecimiento exponencial de contagios.
Grafico de casos diarios confirmados en Sinaloa 2
ggplot(data=ColSon) +
ggtitle("Casos diarios de COVID-19 en Sinaloa") +
geom_line(mapping = aes(x=Fecha, y=Sinaloa))En el grafico de casos diarios de covid-19 en Sinaloa 2 podemos observar una mejor representacion de como los datos se comportan conforme pasan los meses, presentando varios picos o aumentos exponenciales que podrian estar relacionados a grandes movilidades de personas provocando grnades aglomeraciones.
Grafico de casos diarios confirmados en Sonora 2
ggplot(data=ColSon) +
ggtitle("Casos diarios de COVID-19 en Sonora") +
geom_line(mapping = aes(x=Fecha, y=Sonora))En el grafico de casos diarios de covid-19 en Sonora 2 podemos observar una representacion mas detallada de los diferentes picos de contagios que se presentan conforme los dias transcurren, pudiendo ser causado por grandes movilidades de personas.
Datos absolutos
gAbsolutos <- ggplot(data.frame(cSinaloa)) +
geom_line(aes(Fecha, Sinaloa, colour = "Sinaloa"))+
geom_line(aes(Fecha, Sonora, colour = "Sonora"))+
xlab("Mes del ano 2020") +
ylab("Casos Diarios") +
ggtitle("Casos diarios confirmados de COVID-19 en Sinaloa y Sonora")
ggplotly(gAbsolutos)En el grafico de casos confirmados de COVID-19 en Sinaloa y Sonora podemos observar una comparacion de como a ido aumentando los casos en cada estado conforme el tiempo transcurre, podemos observar un comportamiento paredcido, a diferencia que en Sinaloa los picos o contagios no son tan grandes como en Sonora, a exepcion de los contagios entre los meses de febrero y abril, donde se puede observar que Sinaloa tuvo una mayor tasa de contagios al inicio, pero despues se tuvo un mejor control de la pandemia, provocando que los picos posteriores a abril, estuvieran mas controlados que en Sonora.
Grafico interactivo
z <- ggplot(data.frame(cColSon)) +
geom_line(aes(Fecha, cSinaloa, colour = "Sinaloa"))+
geom_line(aes(Fecha, cSonora, colour = "Sonora"))+
xlab("Fecha") +
ylab("Casos Diarios Acumulados") +
ggtitle("Comparativa Sinaloa y Sonora COVID-19")
ggplotly(z)# En este grafico podemos ver que en Sonora se presentan mas casos de covid quer en Colima. Este grafico nos permite tener una grafica mas precisa de los datos.Sonora1 <- data.frame(Fecha,Sonora, cSonora)Diarios y acumulados en Sonora
z2 <- ggplot(data.frame(Sonora1)) +
geom_line(aes(Fecha, cSonora)) +
xlab('Fecha') +
ylab ('Casos Diarios Acummulados') +
ggtitle( ' Confirmados de COVID-19 en Sonora 11 de mayo 2020')z3 <- ggplot(data.frame(Sonora1)) +
geom_line(aes(Fecha, Sonora)) +
xlab('Fecha') +
ylab ('Casos Diarios') +
ggtitle( ' Confirmados de COVID-19 en Sonora 11 de mayo 2020')p_load(gridExtra)
grid.arrange(z2,z3)Sinaloa1 <- data.frame(Fecha,Sinaloa, cSinaloa)Diarios y acumulados en Sinaloa
z4 <- ggplot(data.frame(Sinaloa1)) +
geom_line(aes(Fecha, cSinaloa)) +
xlab('Fecha') +
ylab ('Casos Diarios Acumulados') +
ggtitle( ' Confirmados de COVID-19 en Sinaloa 11 de mayo 2020')z5 <- ggplot(data.frame(Sinaloa1)) +
geom_line(aes(Fecha, Sinaloa)) +
xlab('Fecha') +
ylab ('Casos Diarios') +
ggtitle( ' Confirmados de COVID-19 en Sinaloa 11 de mayo 2020')p_load(gridExtra)
grid.arrange(z4,z5)## Podemos observar una comparacion en cuanto a los datos acumulados y los datos no acumulados del estado de SinaloaAnalisis de series de tiempo
Para tratar este vector numerico como una serie de tiempo, utilizaremos el comando ts (time-series objects)
Sinaloa.ts <- ts(Sinaloa, start = c (2020,1), frequency = 12 )
Sonora.ts <- ts(Sonora, start = c (2020,1), frequency = 12 )
print(Sinaloa.ts)## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2020 0 0 0 0 0 0 0 0 0 0 0 0
## 2021 0 0 0 0 0 0 0 0 0 0 0 0
## 2022 1 0 0 2 1 0 2 1 0 1 4 7
## 2023 8 9 10 7 7 12 16 14 29 10 14 15
## 2024 32 25 29 13 34 25 23 52 47 52 42 45
## 2025 35 33 65 47 56 68 72 55 40 88 52 57
## 2026 58 60 49 34 82 61 86 69 68 53 44 73
## 2027 89 83 105 99 70 67 152 110 127 120 145 63
## 2028 86 179 195 199 170 194 133 75 230 186 218 203
## 2029 230 159 106 220 252 231 240 304 101 92 202 214
## 2030 204 169 175 150 90 223
print(Sonora.ts)## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2020 0 0 0 0 0 0 0 0 0 0 0 0
## 2021 0 0 0 0 0 0 0 0 0 0 0 0
## 2022 1 0 1 0 2 1 0 1 1 0 3 5
## 2023 5 1 6 4 0 1 5 1 3 2 7 2
## 2024 12 15 16 7 8 6 5 20 6 16 16 15
## 2025 14 7 9 15 23 10 20 9 17 35 29 26
## 2026 40 37 33 26 69 62 46 48 54 53 30 80
## 2027 76 115 88 106 71 62 173 157 158 185 164 137
## 2028 110 242 277 239 267 220 150 127 247 246 257 250
## 2029 263 170 121 287 302 271 278 277 182 152 301 317
## 2030 334 279 304 203 171 366
Ahora que se tiene una variable que es un objeto orientado a tiempo, se puede tener una grafica en la cual se entienda la periodicidad de los aumentos de los casos confirmados de COVID-19
plot(Sinaloa.ts)plot(Sonora.ts) Ahora haremos una comparacion interanual del aumento de los casos confirmados de COVID-19
boxplot (Sinaloa.ts ~ cycle(Sinaloa.ts))boxplot (Sonora.ts ~ cycle(Sonora.ts)) Entendimiento de los ciclos del comportamiento de casos de COVID-19
cycle(Sinaloa.ts)## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2020 1 2 3 4 5 6 7 8 9 10 11 12
## 2021 1 2 3 4 5 6 7 8 9 10 11 12
## 2022 1 2 3 4 5 6 7 8 9 10 11 12
## 2023 1 2 3 4 5 6 7 8 9 10 11 12
## 2024 1 2 3 4 5 6 7 8 9 10 11 12
## 2025 1 2 3 4 5 6 7 8 9 10 11 12
## 2026 1 2 3 4 5 6 7 8 9 10 11 12
## 2027 1 2 3 4 5 6 7 8 9 10 11 12
## 2028 1 2 3 4 5 6 7 8 9 10 11 12
## 2029 1 2 3 4 5 6 7 8 9 10 11 12
## 2030 1 2 3 4 5 6
cycle(Sonora.ts)## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2020 1 2 3 4 5 6 7 8 9 10 11 12
## 2021 1 2 3 4 5 6 7 8 9 10 11 12
## 2022 1 2 3 4 5 6 7 8 9 10 11 12
## 2023 1 2 3 4 5 6 7 8 9 10 11 12
## 2024 1 2 3 4 5 6 7 8 9 10 11 12
## 2025 1 2 3 4 5 6 7 8 9 10 11 12
## 2026 1 2 3 4 5 6 7 8 9 10 11 12
## 2027 1 2 3 4 5 6 7 8 9 10 11 12
## 2028 1 2 3 4 5 6 7 8 9 10 11 12
## 2029 1 2 3 4 5 6 7 8 9 10 11 12
## 2030 1 2 3 4 5 6
Descomposicion de una serie de tiempo
Componentes estructurales de una serie de tiempo:
Serie observada = Tendencia + Efecto Estacional + Residuos
Sinaloa.ts.desc <- decompose(Sinaloa.ts)
plot(Sinaloa.ts.desc, xlab = "Año")Sonora.ts.desc <- decompose(Sonora.ts)
plot(Sonora.ts.desc, xlab = "Año")Transformaciones basicas de una serie de tiempo
Estabilizacion de la varianza
Antes de hacer la estabilizacion de la varianza, transformaremos nuestra serie a una logaritmica
plot(log(Sinaloa.ts))plot(log(Sonora.ts))Eliminacion de la tendencia
x <- log(Sinaloa.ts)
dif1.x <- diff(x)
plot(dif1.x)x1 <- log(Sonora.ts)
dif1.x1 <- diff(x1)
plot(dif1.x1)Eliminacion de la estacionalidad
dif12.dif1.x <- diff(dif1.x, lag=12)
plot(dif12.dif1.x)dif12.dif1.x1 <- diff(dif1.x1, lag=12)
plot(dif12.dif1.x1)Conclusiones
A pesar que entre Sonora y Sinaloa, tienen una población muy similar, y de manera coloquial “las mismas costumbres norteñas” como el beisbol, Sonora represento una mayor cantidad de casos positivos de coronavirus, esto puede ser por distintos casos y puntos de vista.
Uno de los casos del porque Sonora tiene mayor cantidad de casos positivos, puede ser por que es frontera con Estados Unidos, por lo cual hay una mayor movilidad, y dado que en Estados Unidos hay una gran cantidad de casos positivos, es mucho mas probable contagiarte estando en ese país.
Otro caso posible, puede ser por el manejo de las autoridades ante el primer caso postivo, dado que en Sonora al primer caso de contagio cerraron todos los negocios no esenciales, por lo cual mucha gente tuvo que buscar trabajo en la calle, donde fueron mas propensos a un contagio.