Los Community Mobility Reports de Google son una serie de informes que permiten observar los cambios de movilidad de las personas, estos son de acceso público y se pueden encontrar en https://www.google.com/covid19/mobility/.
En estos reportes se pueden ver las variaciones de desplazamiento que ocurrieron a lo largo del tiempo según zona geográfica y categorías, como lugares de trabajo, tiendas y espacios públicos.
Para esta ocasión, voy a utilizar este reporte para observar el desplazamiento de las personas en Argentina.
Estos son los paquetes que vamos a utilizar en este documento:
library(tidyverse)
library(plotly)
El primer paso consiste en cargar los datos del mobility report de Google, como el archivo es un csv se puede usar la función read.csv().
GMR <- read.csv("C:\\Users\\jonathan.rzezak\\Desktop\\Global_Mobility_Report.csv")
Con la función names() se puede obtener los nombres de las variables del data frame.
names(GMR)
## [1] "country_region_code" "country_region" "sub_region_1"
## [4] "sub_region_2" "date" "Retail.Recreation"
## [7] "Grocery.Pharmacy" "Parks" "TransitStations"
## [10] "Workplaces" "Residential"
El siguiente paso consiste en utilizar la función filter() para filtrar los valores que cumplen con una cierta condición.
Como el objetivo es visualizar el desplazamiento de las personas en Argentina y sus provincias, paso a crear dos nuevos data frame con esos datos.
GMR.Pais <- filter(GMR,country_region_code=="AR",sub_region_1=="")
GMR.Provincias <- filter(GMR,country_region_code == "AR",sub_region_1 !="")
Como cada categoria de movilidad del data frame GMR.Pais es una columna, para poder realizar un grafico hay que agregar una capa por cada variable.
ggplot(GMR.Pais,aes(x=as.Date(date)))+
geom_line(aes(y=Retail.Recreation))+
geom_line(aes(y=Grocery.Pharmacy))+
geom_line(aes(y=Parks))+
geom_line(aes(y=TransitStations))+
geom_line(aes(y=Workplaces))+
geom_line(aes(y=Residential))+
labs(x="Fecha",
y="Porcentaje de variacion con respecto a t0")+
theme_bw()
Para solucionar este inconveniente, hay que transformar el data frame GMR.Pais en un conjunto de datos ordenados.
Según el libro R for Data Science de Wickham y Grolemun, existen tres reglas para que un conjunto de datos sea ordenado:
Para lograr esto, se puede utilizar la función pivot_longer() para convertir las 6 columnas de movilidad en una sola:
GMR.AR.Pivot <- pivot_longer(GMR.Pais,c(Retail.Recreation,
Grocery.Pharmacy,
Parks,
TransitStations,
Workplaces,
Residential),
names_to = "CategoriasMovilidad",
values_to = "PorcentajeCambio")
Aplicamos el mismo método para el data frame GMR.Provincias:
GMR.Provincias.Pivot <- pivot_longer(GMR.Provincias,c(Retail.Recreation,
Grocery.Pharmacy,
Parks,
TransitStations,
Workplaces,
Residential),
names_to = "CategoriasMovilidad",
values_to = "PorcentajeCambio")
Con los datos ordenados, utilizamos la fúncion names() para ver como quedaron las columnas:
names(GMR.AR.Pivot)
## [1] "country_region_code" "country_region" "sub_region_1"
## [4] "sub_region_2" "date" "CategoriasMovilidad"
## [7] "PorcentajeCambio"
names(GMR.Provincias.Pivot)
## [1] "country_region_code" "country_region" "sub_region_1"
## [4] "sub_region_2" "date" "CategoriasMovilidad"
## [7] "PorcentajeCambio"
La ventaja de tener un conjunto de datos ordenados es que se puede realizar una mejor visualización de forma sencilla.
ggplot(GMR.AR.Pivot,aes(x=as.Date(date),y=PorcentajeCambio,color=CategoriasMovilidad))+
geom_line()+
labs(x='Fecha',
y='Porcentaje de Variacion con respecto a t0',
title='Indice de desplazamiento en Argentina hasta el 13/5',
subtitle = 'Fuente: Google Mobility Report',
caption = 'Elaboracion propia con rstudio')+
theme_bw()
Para realizar la misma visualización pero según provincia, hay que facetar el grafico, esto se puede realizar con la función facet_wrap().
ggplot(GMR.Provincias.Pivot,aes(x=as.Date(date),y=PorcentajeCambio,color=CategoriasMovilidad))+
geom_line()+
labs(x='Fecha',
y='Porcentaje de Variacion con respecto a t0',
title='Indice de desplazamiento en las provincias de Argentina hasta el 13/5',
subtitle = 'Fuente: Google Mobility Report',
caption = 'Elaboracion propia con rstudio')+
facet_wrap(~sub_region_1)+
theme_bw()
El problema de realizar una visualización estática, es que la lectura de datos resulta difícil dado que no se puede observar con facilidad bien las categorías ni tampoco las escalas.
Para solucionar esto, se puede utilizar la función ggplotply(), la cual nos permite realizar una visualización interactiva en cuestión de minutos.
Para poder utilizar ggplotly(), tienen que instalar el paquete plotly, el cual recomiendo bastante debido a su facilidad de implementar.
ggplotly(ggplot(GMR.AR.Pivot,aes(x=as.Date(date),y=PorcentajeCambio,color=CategoriasMovilidad))+
geom_line()+
labs(x='Fecha',
y='% de variación con respecto a t0',
title='Índice de desplazamiento en las provincias de Argentina hasta el 13/5 ')+
theme_bw())
El mismo grafico se puede realizar según provincia:
ggplotly(ggplot(GMR.Provincias.Pivot,aes(x=as.Date(date),y=PorcentajeCambio,color=CategoriasMovilidad))+
geom_line()+
labs(x='Fecha',
y='% de variacion con respecto a t0',
title='Indice de desplazamiento en las provincias de Argentina hasta el 13/5')+
facet_wrap(~sub_region_1)+
theme_bw())
A nivel país, se puede observar como en las últimas semanas aumento considerablemente el uso del transporte público por parte de las personas y el desplazamiento hacia su trabajo.
El mismo fenómeno se puede ver en la mayoría de las provincias.
Elaborado por Jonathan Rzezak