Anteriormente hemos extraído los datos de BiciMAD, los hemos ordenado y apilado por mes. Ahora nos vamos a centrar solo en los datos de movimientos, sin tener en cuenta la información detallada de las estaciones.

Con el fin de obtener una visión general de la serie con la que vamos a trabajar, vamos a agrupar los datos de movimientos de forma que obtengamos una serie temporal. Podremos ver la evolución del consumo de BiciMAD en el total de las estaciones, durante le periodo que abarca de enero de 2019 hasta junio de 2020.

1 IMPORTACIÓN DE DATOS Y PREPARACIÓN PARA LA VISUALIZACIÓN.

Importamos las librerías.

library(data.table)
library(dplyr)
library(stringr)
library(ggplot2)
library(inspectdf)
library(mice)

Cargamos el conjunto de datos.

datos<-fread(file="movimientos2019-jun2020.csv")
#glimpse(datos)

Agrupamos los viajes por fecha, sin especificar las estaciones.

viajes<-datos%>%count(fe_year, fe_month, fe_day) # Cuento el número de viajes por día.
viajes<-mutate(viajes, fecha= paste(fe_year,"-", fe_month, "-", fe_day)) # Creo la variable fecha.
viajes$fecha<-as.Date(str_replace_all(viajes$fecha, " ", "")) # Elimino los espacios de la variable y la paso a formato fecha.

Por errores en la carga de datos por parte de BiciMAD, nos falta la información de algunos días. Creamos una secuencia de fechas, desde enero de 2019 hasta junio de 2020, con el fin de compararla con el data frame “viajes” y poder comprobar qué fechas no tienen dato.

periodo<-as.data.frame(seq(as.Date("2019/1/1"), as.Date("2020/6/15"),by="day")) 
colnames(periodo)[1]<-"fecha"

A la tabla con todas las fechas, agregamos la información del número de viajes de la tabla “viajes”.

serie<-merge(periodo, viajes, all.x = TRUE)
serie<-serie[,c(1,5)]
inspect_na(serie)

Hay 48 missings. Los convertimos en cero y analizamos los días con pocos viajes.

serie2<-mutate(serie, n=ifelse(is.na(serie$n), 0, serie$n))

Histograma de la variable n (número de viajes por día)

g<- ggplot(serie2, aes(x=n))+
  geom_histogram(position="identity", bins=40, color="darkgreen", fill="lightgreen")+
  labs(x= "Nº de viajes", y="Nº de días")

g

Hay días que tienen muy pocos viajes. La mayoría son los missings y los demás son errores de carga o el periodo de cuarentena.

Vamos a imputar estos datos, pero solo los anteriores al comienzo de la cuarentena en España el 14 de marzo de 2020, ya que es lógico que desde mediados de marzo hasta finales de abril haya habido cero viajes en la mayoría de los días. El periodo de confinamiento no lo imputaremos, pues nos interesa ver el efecto de la cuarentena en el consumo de BiciMAD.

serie3<-mutate(serie2, n=ifelse(n<50 & fecha<as.Date("2020-03-13"), NA, n))
inspect_na(serie3)

Para imputar los NA voy a utilizar la librería MICE.

serie_imp<-complete(mice(serie3))
## 
##  iter imp variable
##   1   1  n
##   1   2  n
##   1   3  n
##   1   4  n
##   1   5  n
##   2   1  n
##   2   2  n
##   2   3  n
##   2   4  n
##   2   5  n
##   3   1  n
##   3   2  n
##   3   3  n
##   3   4  n
##   3   5  n
##   4   1  n
##   4   2  n
##   4   3  n
##   4   4  n
##   4   5  n
##   5   1  n
##   5   2  n
##   5   3  n
##   5   4  n
##   5   5  n

2 GRÁFICOS.

Ahora que tenemos un valor para todos los días de la serie, procedemos a visualizarlos con el paquete ggplot2.

serie_imp<-cbind(serie_imp, month(serie_imp$fecha))
colnames(serie_imp)[3]<-"Month"
g2<- ggplot(serie_imp, aes(x=fecha, y= n))+
    geom_line(color="darkgreen", size=0.9)+
    scale_x_date(date_labels = "%Y (%b)", date_breaks = "1 month") +
    theme(axis.text.x=element_text(size=10, angle=45))+
    geom_smooth()
g2
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

g3<- ggplot(serie_imp, aes(x=fecha, y= n))+
    geom_line(color=serie_imp$Month, size=0.9)+
    scale_x_date(date_labels = "%Y (%b)", date_breaks = "1 month") +
    theme(axis.text.x=element_text(size=10, angle=45))+
    geom_smooth()
g3
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Entre mayo y junio de 2019 hay un fuerte crecimiento del consumo. La inauguración de una nueva tanda de estaciones, así como la llegada del buen tiempo, producen un efecto de atracción para los usuarios.

En julio y agosto de 2019 el consumo se modera debido al comienzo de las vacaciones para gran parte de la población y las altas temperaturas.

Al igual que las altas temperaturas contraen el consumo, también lo hacen las bajas, como se puede observar en diciembre y enero.

El 14 de marzo de 2020 comienza la cuarenta y con ella cesa completamente la actividad en BiciMAD. Desde mediados de marzo y hasta finales de abril, la actividad es prácticamente cero. Los únicos viajes son realizados por repartidores de comida a domicilio.

La reapertura de la actividad comercial en Madrid fue muy gradual durante los meses de mayo y junio. La población intenta evitar transportes como metro y bus para mantener el distanciamiento con otras personas y así limitar los contagios. Esto se traduce en una inmediata recuperación del consumo de BiciMAD, que en pocas semanas se vuelve a situar en niveles similares a los del mismo periodo en el año anterior.