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

Autor: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

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?
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?

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?

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?

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?

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?
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?

¿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!

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado