Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses?

Autor: | Última modificación: 4 de noviembre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

Entre las muchas cosas que se puede hacer en este inmenso panorama, podemos hacer una predicción del covid con Big Data. Fue algo tremendamente útil en sus primeras etapas, donde se buscaba evaluar el impacto mundial que este virus tendría para, de este modo, tomar decisiones gracias a la inteligencia artificial y realizar modelos de predicción con los datos disponibles.

¿Cómo hacer una predicción del covid con Big Data?

Vamos a ver los datos que teníamos previamente y la serie acumulada para poder hacer la predicción del covid con Big Data:

library(tidyverse)

#df_acumulados <- read.csv ("https://covid19.isciii.es/resources/ serie_historica_acumulados.csv")
df_acumulados <- read.csv ("data/serie historica_acumulados.csv")
df_acumulados$FECHA <- as.Date (df_acumulados$FECHA, format = "% d / % m / % Y")
head (df_acumulados)
Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses? 1
predicción del covid con big data: tabla

Vamos a hacer la predicción del covid con Big Data sobre el total de fallecidos. Así pues, mostraremos el acumulado de los fallecidos:

df_acumulados_all <- df_acumulados %>% group_by (FECHA) %>%
summarise_at (c ("CASOS", "Hospitalizados", "UCI", "Fallecidos", "Recuperados"), sum, na.rm= TRUE)

ggplot (df_acumulados all, aes (x = FECHA, y = Fallecidos)) + geom_line()

Warning message:

«Removed 1 row(s) containing missing values (geom_path).»

Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses? 2

Filtramos los datos con fecha a partir del 1 de abril de 2020 para observar la parte exponencial de la gráfica anterior, porque una vez que empezó el confinamiento, la curva se fue doblegando.

df_acumulados <- df_acumulados %>% filter (FECHA < as.Date ("2020 - 04 - 01"))
df_acumulados_all <- df_acumulados all %>% filter (FECHA < as.Date ("2020 - 04 - 01"))
df_acumulados_all$Fallecidos_dia <- c (NA, diff (df_acumulados_all$Fallecidos))
df_acumulados_all$dia <- seq (nrow (df_acumulados_all))

tail (df_acumulados_all)
Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses? 3

Para hacer la predicción del covid con Big Data, primero vamos a hacer el modelo de Poisson, en el cual se calcula el número de fallecidos en función del día.

Aquí ya no estamos calculando los acumulados, sino la diferencia de fallecidos:

model_poisson <- glm (df_acumulados_all, formula = Fallecidos_dia ~ dia, family = poisson)
summary (model_poisson)
Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses? 4

Nos sale 0.667573 y 0.157938. ¿Qué significa esto? Pues que cada día las víctimas se multiplicaron un 17 %, que es el exponente de 0.157938. La línea de este último valor equivale al número de víctimas que se multiplicaron por día.

paste ("Cada día las víctimas se multiplican por", exp (model_poisson$coefficients [2]))

‘Cada día las víctimas se multiplican por 1.17109336753171’

Pintamos este valor en una gráfica:

preds <-df_acumulados_all [ , c ("Fallecidos_dia", "dia", "FECHA")]
preds$pred <- predict (mode_poisson, preds, type = "response")
#preds$pred <- exp (model_poisson$_coefficients [2] preds$dia + model_poisson$coefficients [1])
ggplot (preds, aes (x = FECHA)) +
geom_line (aes (y = Fallecidos_dia, color = "Real")) +
geom_line (aes (y =pred, color = "Estimado"))

Warning message:

«Removed 1 row(s) containing missing values (geom_path).»

Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses? 5

En esta predicción del covid con Big Data vemos cómo es el valor estimado y cómo es el valor real.

Regresión lineal sobre logaritmos

En lugar de aplicar el logaritmo en una función exponencial, podemos utilizar una regresión lineal sobre los logaritmos para hacer esta predicción del covid con Big Data:

df_acumulados_all$log_fallecidos <- log (df_acumulados_all$Fallecidos_dia)
df_acumulados_all_no_inf <-df_acumulados_all [ ! is.infinite (df_acumulados_all$log_fallecidos),]

model <- lm (data = df_acumulados_all_no_inf,
formula = log_fallecidos ~ dia)
summary (model)
Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses? 6
paste ("Cada día las víctimas se multiplican por", exp (model$coefficients [2]))

‘Cada día las víctimas se multiplican por 1.22398743142683’

preds <- df_acumulados_all [ , c ("Fallecidos_dia", "log_fallecidos", "dia", "FECHA")] 
preds$pred <- predict (model, preds)
preds$pred_fallecidos <- exp (preds$pred)
ggplot (preds, aes (x = FECHA)) +
geom_line (aes (y = Fallecidos_dia, color = "Real")) +
geom_line (aes (y = pred_fallecidos, color = "Estimado"))

Warning message:

«Removed 1 row(s) containing missing values (geom_path).»

Predicción del covid con Big Data: ¿cómo funcionó en los primeros meses? 7

¿Qué sigue?

Recuerda que si te ha interesado este tema de la predicción del covid con Big Data y quieres seguir aprendiendo sobre el análisis de datos, puedes solicitar información para inscribirte en nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning. En muy pocos meses dominarás todos los conocimientos necesarios para incursionar en el mercado laboral más prolífico del momento. ¿A qué estás esperando? ¡Anímate y escríbenos!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.