Analisis de datos abiertos de COVID-19 en México

Importar

Descargar datos

xfun::embed_file("Casos_Diarios_Estado_Nacional_Confirmados_20211015.csv")

Download Casos_Diarios_Estado_Nacional_Confirmados_20211015.csv

xfun::embed_file("AE3UC1_11.Rmd")

Download AE3UC1_11.Rmd

Importar datos

#Establecemos una variable para acceder a los datos
datos <- read_csv("Casos_Diarios_Estado_Nacional_Confirmados_20211015.csv")
## 
## -- Column specification --------------------------------------------------------
## cols(
##   .default = col_double(),
##   cve_ent = col_character(),
##   nombre = col_character()
## )
## i Use `spec()` for the full column specifications.

Transformar y filtrar

#Filtramos el estado del que queremos tomar la informacion

#Extraemos los datos a nivel nacional y los transformamos a un vector
Nacional <- t(datos[datos$nombre == "Nacional" ,])# t = transpuesta
Nacional <- as.vector(Nacional)
Nacional <- Nacional
Nacional <- Nacional[4:605]
Nacional <- as.numeric(Nacional)
Nacional<- as.vector(Nacional)
aNacional <- cumsum(Nacional) #aALGO significa acumulado de algo

# Estructuración de los datos en un marco de datos ( Data frame)

Fecha <- seq(from= as.Date("2020-02-18"), to = as.Date("2021-10-11"), by = "day" ) #Vector de fechas desde el 2 de febrero del 2020 al 15 de Octubre del 2021

#Data frame de datos absolutos
abNacional <- data.frame(Fecha, Nacional)

Introducción

El COVID-19 ha afectado a todo el mundo con millones de casos confirmados, lo que ha provocado un aumento de las muertes. México se encuentra entre los países afectados a nivel mundial, presentando un número variable de casos diarios, los cuales serán analizados en nuestro estudio aquí.

Aquí describiremos la actividad de la propagación de COVID-19 en el país de México. Debido a la amplia capacidad de detección de casos y pruebas en México y la región especialmente, nuestro estudio representa una cohorte de población casi completa que refleja el amplio número variable de casos de COVID-19 por día.

Visualiza

Tabla

Tabla interactiva de datos diarios absolutos a nivel nacional

#Tabla interactiva de datos diarios absolutos de abNacional
datatable(abNacional)

Graficas

Graficas utilizando ggplot

Series de tiempo

Datos absolutos
#Datos absolutos
gabNacional <- ggplot(data = abNacional) +
  ggtitle("Casos diarios COVID-19 a nivel nacional en México")+
  ylab("Casos de COVID-19") +
  geom_line(mapping = aes(x = Fecha, y = Nacional ))

ggplotly(gabNacional)

En esta gráfica podemos ver las 3 olas de COVID-19 que ha sufrido México a nivel nacional, los datos que se muestran en el gráfico no son normales, esto porque sufren cambios abruptos, los picos de infección se muestran en más que nada los días festivos del país que es cuando hay más amontonamiento de personas en un solo sitio, provocando que se contagien más y esparzan más el virus.

Histograma de datos

hist(Nacional,xlab = "Casos por COVID-19",ylab = "Concurrencia de los datos",main = "Casos de COVID-19 a nivel nacional en mexico")

Se puede observar que los valores que más se repiten son los menores a 5 mil casos diarios esto se puede deber a que las personas se juntaban en grupos pequeños para celebrar cumpleaños o simplemente pasar el rato en compañía en el caso de los datos que menos se repiten eso es porque cuando son mayores a 20 mil es por un festejo nacional como el día de la intendencia, navidad, etc.

Medidas de posicion central

Calculo individual de las medidas principales de valores confirmados (Media, Mediana y Moda)

Media

mean(Nacional)
## [1] 6213.145

Mediana

median(Nacional)
## [1] 5173

Moda

#mfv = most value frecuence
mfv(Nacional)
## [1] 0

Resumen de posicion central

summary(Nacional)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       0    2482    5173    6213    7855   25274

Se hizo el análisis de medidas de posición central para poder observar de mejor manera como se comportan los datos y poder observar un aproximado de los casos diarios de COVID-19 que se tienen hasta la fecha actual.

Grafico de caja y bigote

boxplot(Nacional,main="Casos de COVID-19 a nivel nacional en México")

En este gráfico de caja y bigotes vemos como los datos efectivamente sufren demasiadas anomalías, esto representados con la cantidad excesiva de puntos que hay ya que estos representan valores atípicos, mostrando picos de contagios muy elevados.

Medidas de dispersion

Variancia

#Distancia que existe entre los valores y la media
var(Nacional)
## [1] 27794386

Vemos que los datos están muy alejados de su media ya que tienen una cantidad excesiva de varianza.

Desviacion estandar

#La desviación que existe entre todos los valores y la media
sd(Nacional)
## [1] 5272.038

Observamos una desviación de 5272.038 lo cual nos deja bastante preocupados.

Análisis de series de tiempo (TSA)

Para este ejercicio usaremos datos de los casos confirmados de covid-19 en México a nivel nacional desde el 18 de Febrero del 2020 hasta hasta el 15 de Octubre del 2021

Grafiquemos los datos

Ahora transformaremos este vector numerico a un objeto de serie de tiempo

revolucion.ts <- ts(data=Nacional,start = c(2020,2), frequency = 365)

Ahora grafiquemos con respecto al tiempo

plot(revolucion.ts)

Aqui podemos observar claramente las 3 olas de contagios que provoco el COVID-19

Decomposición de series de tiempo

Analizamos una serie de tiempo desde sus componentes estructurales

En este modelo, la serie observada es el resultado de sumar una tendencia que representa el comportamiento a largo plazo de la serie, un efecto estacional que describe sus fluctuaciones periódicas y un componente residual que describe las variaciones a corto plazo, normalmente impredecibles.

Con R es muy sencillo obtener una descomposición estructural de este tipo. Se usa el comando decompose:

\[ serie observada = Tendencia + efecto estacional + residuos \]

Esta descomposición se basa en métodos elementales:

  • la tendencia se calcula con una media móvil,

  • el efecto estacional se calcula promediando los valores de cada unidad de tiempo para todos los periodos (por ejemplo, todos los meses de enero si la serie es mensual) y luego centrando el resultado. Finalmente,

  • los residuos se obtienen restando a la serie observada las dos componentes anteriores.

La descomposicion solo es totalmente adecuada si se dispone de un número completo de periodos (por ejemplo, un múltiplo de 12 si la serie es mensual).

Transformaciones básicas de una serie

En el gráfico de dMuertos.ts se observa que la serie no es estacionaria. La serie presenta una tendencia aparentemente lineal en decenso y una estacionalidad muy marcada (las busquedas aumentan por Octubre a pesar de no ser el día que se busca). Además, la amplitud de las fluctuaciones decae con el tiempo por lo que la variabilidad tampoco es constante. Sin embargo, muchos modelos importantes de series temporales corresponden a series estacionarias (es decir, sin tendencia ni estacionalidad y con variabilidad constante). Antes de ajustar un modelo estacionario tenemos que transformar la serie original.

Estabilización de la varianza: Para estabilizar la variabilidad se suelen tomar logaritmos. Esta transformación funcionará bien cuando la variabilidad sea aproximadamente proporcional al nivel de la serie. Representamos la serie transformada mediante

plot(log((revolucion.ts)))

Eliminacion de la tendencia: Una forma sencilla de eliminar una tendencia aproximadamente lineal es diferenciar la serie, es decir, considerar la serie de diferencias entre una observación y la anterior en lugar de la serie original. Si xt es una serie contenida en x, para calcular:

\[ \nabla x_t = x_t -x_{t-1} \]

x <- log(revolucion.ts)
dif1.x <- diff(x)
plot(dif1.x)

Eliminación de estacionalidad: Para eliminar la estacionalidad de una serie mensual se pueden tomar diferencias estacionales de orden 12. Si xt es la serie que queremos desestacionalizar, se trata de calcular:

\[ \nabla_{12} x_t = x_t - x_{t-12} \]

dif12.dif1.x <- diff(dif1.x, lag=12)
plot(dif12.dif1.x)

Ahora con las gráficas descompuestas:

Los datos aumentan con el tiempo, ¿pero es el tiempo la causa que aumenten los casos?

Si aumentan con el tiempo, pero la causa del aumento de casos no es por el tiempo, si no por aglomeración de personas en un solo lugar por festividades nacionales donde las personas se reúnen y no llevan a cabo las reglas de uso correcto del cubrebocas y la distancia de 1.5m de cada persona.

¿Qué es lo que hace que los contagios suban y bajen? la movilidad

Conclusión

En los datos se observó cómo hay ascenso y descenso de los mismos datos, se debe a que los mexicanos seguimos la cuarentena a medias, porque siempre salimos a festejar algún convivio o festejo nacional sin cuidarnos con el cubrebocas y el distanciamiento social de 1.5m. Otra de las causas de infección se debe a que más de la mitad del país no puede quedarse en casa ya que tienen que ir a trabajar y a las calles o maquilas donde hay aglomeración de personas.