Las “Ecobicis” se han convertido en una opción de transporte cada vez más popular en las ciudades modernas, ofreciendo una alternativa ecológica y asequible para desplazarse por áreas urbanas. La Ciudad Autónoma de Buenos Aires ha implementado este sistema con el fin de promover la movilidad sostenible y reducir la congestión vehicular, pero para lograr una mayor eficiencia y adaptación a las necesidades de los usuarios, es fundamental comprender cómo se está utilizando este servicio y qué factores pueden influir en su utilización.
En el presente caso de estudio, se explorarán los nuevos usuarios registrados en el servicio en el primer semestre de 2023. Se investigarán patrones de utilización de este sistema de transporte sostenible y, específicamente, se indagará en cómo estos patrones pueden variar en función de diferentes grupos demográficos, como la edad y el género de los usuarios. En orden de encontrar respuestas para las preguntas presentadas, se seguirán los seis pasos del proceso de análisis de datos: preguntar, preparar, procesar, analizar, compartir y actuar.
Analizar a los nuevos usuarios registrados en el servicio de “Ecobicis” durante el primer semestre de 2023, buscando comprender los patrones de utilización de este sistema de transporte y evaluar cómo estos pueden variar según diferentes grupos demográficos, como la edad y el género de los usuarios.
Como primer paso, se plantearon las siguientes preguntas para poder realizar el análisis en pos de identificar problemáticas y presentar soluciones:
Se utilizarán dos datasets del sistema Ecobici para este estudio. Uno de ellos, Recorridos Realizados 2023, contiene información sobre todos los viajes del primer semestre del año, incluyendo detalles sobre las estaciones de origen y destino, así como las horas de partida y llegada. El segundo dataset, Usuarios Ecobici 2023, contiene información de los usuarios registrados en el servicio de Ecobici en el primer semestre del mismo año, proporcionando datos sobre la edad, género y fecha de alta de los usuarios. Todos los datos utilizados en el presente caso de estudio fueron descargados del portal de datos públicos BA Data, siendo los mismos generados, guardados y publicados por el Gobierno de la Ciudad de Buenos Aires
El trabajo será realizado con R, dado que brinda herramientas accesibles que facilitan la consulta y manejo de grandes volúmenes de datos, permitiendo además, crear visualizaciones en el mismo entorno de trabajo.
Se instalarán los siguientes paquetes para facilitar el trabajo de análisis y armado de visualizaciones:
Ahora hay que abrir las librerías:
library(tidyr)
library(readr)
library(dplyr)
library(stringr)
library(lubridate)
library(ggplot2)
library(patchwork)
library(sf)
Importo los datasets, almacenándolos en variables para crear un data frame de cada uno, y los previsualizo para ver con los datos que se trabajarán.
raw_trips_2023 <- read.csv('datasets/trips_2023.csv')
raw_users_2023 <- read.csv('datasets/usuarios_ecobici_2023.csv')
glimpse(raw_trips_2023)
## Rows: 1,314,312
## Columns: 18
## $ X <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, …
## $ Id_recorrido <chr> "16997896BAEcobici", "17001042BAEcobici", "…
## $ duracion_recorrido <chr> "2,471", "2,979", "598", "2,472", "973", "5…
## $ fecha_origen_recorrido <chr> "2023-01-22 10:23:53", "2023-01-22 19:35:27…
## $ id_estacion_origen <chr> "191BAEcobici", "191BAEcobici", "229BAEcobi…
## $ nombre_estacion_origen <chr> "191 - Rivadavia y 9 de Julio", "191 - Riva…
## $ direccion_estacion_origen <chr> "Pellegrini Y Rivadavia Av.", "Pellegrini Y…
## $ long_estacion_origen <dbl> -58.38084, -58.38084, -58.45153, -58.42095,…
## $ lat_estacion_origen <dbl> -34.60793, -34.60793, -34.58158, -34.58055,…
## $ fecha_destino_recorrido <chr> "2023-01-22 11:05:04", "2023-01-22 20:25:06…
## $ id_estacion_destino <chr> "30BAEcobici", "51BAEcobici", "101BAEcobici…
## $ nombre_estacion_destino <chr> "030 - Peña", "051 - TUCUMAN", "101 - Fitz …
## $ direccion_estacion_destino <chr> "Peña & Azcuenaga", "Tucuman & 9 De Julio A…
## $ long_estacion_destino <dbl> -58.39737, -58.38213, -58.44244, -58.39902,…
## $ lat_estacion_destino <dbl> -34.59082, -34.60148, -34.58919, -34.59840,…
## $ id_usuario <chr> "948377BAEcobici", "948377BAEcobici", "6702…
## $ modelo_bicicleta <chr> "ICONIC", "ICONIC", "ICONIC", "ICONIC", "IC…
## $ género <chr> "MALE", "MALE", "MALE", "MALE", "FEMALE", "…
glimpse(raw_users_2023)
## Rows: 53,929
## Columns: 6
## $ ID_usuario <int> 1001183, 1001224, 1001039, 1001326, 100124…
## $ genero_usuario <chr> "MALE", "FEMALE", "OTHER", "MALE", "MALE",…
## $ edad_usuario <int> 32, 24, 19, 24, 19, 20, 30, 54, 25, 21, 28…
## $ fecha_alta <chr> "2023-07-06", "2023-07-06", "2023-07-06", …
## $ hora_alta <chr> "15:50:48", "16:48:05", "06:03:32", "19:26…
## $ Customer.Has.Dni..Yes...No. <chr> "Yes", "Yes", "No", "Yes", "Yes", "Yes", "…
En primer lugar, se limpiará el data frame raw_trips_2023, que contiene datos sobre todos los viajes realizados en el primer semestre del 2023, almacenando los cambios en un nuevo data frame sobre el que se trabajará de ahora en adelante: trips_2023.
En el siguiente bloque de código se realizan los siguientes cambios:
trips_2023 <- raw_trips_2023 %>%
select(-X, -duracion_recorrido, -género) %>%
drop_na() %>%
mutate_at(vars(nombre_estacion_origen, nombre_estacion_destino), toupper) %>%
mutate(fecha_origen_recorrido = as.POSIXct(fecha_origen_recorrido, format = "%Y-%m-%d %H:%M:%S")) %>%
mutate(fecha_destino_recorrido = as.POSIXct(fecha_destino_recorrido, format = "%Y-%m-%d %H:%M:%S")) %>%
mutate(minutos_viaje = floor(as.numeric(difftime(fecha_destino_recorrido, fecha_origen_recorrido, units = "mins")))) %>%
mutate(dia_semana_viaje = weekdays(fecha_origen_recorrido))
Ahora es momento de limpiar el segundo data frame, raw_users_2023, que almacena información de sobre los nuevos usuarios dados de alta en el primer semestre del 2023. Para ello, se llevarán adelante las siguientes modificaciones, almacenando el resultado en un nuevo data frame: users_2023.
users_2023 <- raw_users_2023 %>%
rename_all(tolower) %>%
drop_na() %>%
mutate(fecha_alta = as.Date(fecha_alta)) %>%
filter(edad_usuario >= 0 & edad_usuario <= 100) %>%
filter(is.finite(edad_usuario)) %>%
select (-hora_alta, -customer.has.dni..yes...no.) %>%
mutate(dia_semana_registro = weekdays(fecha_alta))
Para poder agilizar el análisis, se creará un data frame ancho con datos de los nuevos usuarios y los viajes que realizaron, mediante un inner join de las columnas id_usuario.
Primero, y antes de realizar el join, voy a el tipo de dato de la columna “id_usuarios” alojada en el trips_2023 de chr a numeric, eliminando además las letras, para que coincidan con los valores encontrados en la otra tabla.
trips_2023$id_usuario <- as.integer(gsub("[^0-9]", "", trips_2023$id_usuario))
Una vez listos ambos data frames, realizo el join asignándole a la nueva estructura el nombre user_trips_2023. Sobre este, voy a agregar una nueva columna indicando el rango de edad en el que se encuentra cada usuario.
user_trips_2023 <- trips_2023 %>%
inner_join(users_2023, by = "id_usuario") %>%
rename_with(~str_replace(., "\\.x$", "")) %>%
select(-ends_with(".x"), -ends_with(".y"))
limites_edades <- c(15, 25, 35, 45, 55, 65, 75, 85, Inf)
etiquetas_edades <- c("15-24", "25-34", "35-44", "45-54", "55-64", "65-74", "75-84", ">=85")
user_trips_2023 <- user_trips_2023 %>%
mutate(rango_edad = cut(edad_usuario, breaks = limites_edades, labels = etiquetas_edades, include.lowest = TRUE))
Por último, se creará un último data frame con una fila por cada usuario nuevo registrado en el 2023.
nuevos_usuarios_total <- user_trips_2023 %>%
filter(!duplicated(id_usuario))
En el 2023 se dieron de alta un total de 44333 usuarios. Para comenzar, se analizará cuántos nuevos usuarios hubo por cada día de la semana y cuántos por cada mes del primer semestre.
Los sábados, domingos y lunes destacan claramente como los días con mayores registros, mientras que los demás días presentan cifras considerablemente más bajas. Respecto a los meses, se observa un descenso progresivo en la cantidad de nuevos usuarios durante el primer semestre, con un promedio de 744,2 usuarios menos cada mes.
A continuación, se analizará las edades de los nuevos usuarios, agrupándolas en rangos de diez años.
Se revela una interesante diversidad de edades entre los nuevos usuarios, encontrando individuos de 15 a más de 85 años. Esto se observa en promedio de edad de 31 años. Por otro lado, rango de edad de 15-24 se destaca como el más representativo en términos de cantidad de registros. Esta amplia variedad de perfiles denota la habilidad del servicio para atraer a una amplia gama de generaciones y perfiles, lo que fortalece la inclusión y la adopción de bicicletas públicas en la ciudad de Buenos Aires.
Es importante identificar qué porcentaje de cada género representan los nuevos usuarios. Para ello, se separarán los mismos en los tres grupos registrados en el sistema: MALE (Masculino), FEMALE (Femenino) y OTHER (otros).
Estos gráficos del género de los nuevos usuarios muestran una predominancia de registros masculinos, ligeramente superiores a los femeninos. Juntos, representan más del 90% del total de nuevos usuarios, mientras que el 10% restante corresponde a usuarios de otros géneros. Estos hallazgos reflejan la necesidad de implementar estrategias inclusivas que promuevan la participación de un público más diverso en el servicio Ecobici, con el objetivo de asegurar una mayor equidad de género en la adopción de la bicicleta pública como opción de movilidad sostenible en la ciudad de Buenos Aires.
Ahora, profundicemos en los viajes en sí con explorando la duración de aquellos realizados por los nuevos usuarios. Se buscará obtener el promedio de duración de los viajes diarios, intentando identificar variaciones a lo largo del primer semestre.
Para empezar, se visualizarán todos los viajes con sus respectivas duraciones, omitiendo aquellos que registraron más de 16 horas de duración.
En el gráfico anterior, es posible apreciar que la mayoría de los viajes se encuentran dentro de la franja de las 2 horas de duración.
Por último, para tener una visión mas detallada de la franja de 2 horas, se agrandará la escala, convirtiéndola además a minutos, pudiendo identificar que la duración promedio de los viajes de los nuevos usuarios es de 31 minutos.
En este último capítulo, se analizará la ubicación geográfica de las estaciones de Ecobici en la Ciudad de Buenos Aires. Para facilitar la visualización, se utilizará un archivo georeferenciado con las comunas de la Ciudad Autónoma de Buenos Aires, disponible online en formato geojson para representar las estaciones como puntos en un mapa de la ciudad.
barrios <- st_read('https://bitsandbricks.github.io/data/CABA_barrios.geojson')
## Reading layer `CABA_barrios' from data source
## `https://bitsandbricks.github.io/data/CABA_barrios.geojson'
## using driver `GeoJSON'
## Simple feature collection with 48 features and 4 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: -58.53152 ymin: -34.70529 xmax: -58.33514 ymax: -34.52754
## Geodetic CRS: WGS 84
Al analizar las preferencias sobre estaciones de inicio y destino, es posible observar que en ambos casos las más elegidas por los nuevos usuarios se concentran en las zonas este y noreste de la ciudad.
En el marco del análisis de nuevos usuarios del servicio de bicicletas públicas “Ecobici” en la Ciudad de Buenos Aires durante el primer semestre año 2023, se han obtenido importantes hallazgos sobre el comportamiento y características de los usuarios que se han sumado al servicio en dicho período:
Patrones de registro de nuevos usuarios: Se identificó que los días sábados, domingos y lunes concentraron la mayor cantidad de nuevos registros de usuarios en Ecobici, notando en paralelo una fuerte disminución en los registros conforme pasaban los meses. Estos patrones pueden tener implicaciones estratégicas para el equipo de marketing y promoción, permitiendo enfocar sus esfuerzos en aquellos momentos en los que la captación de nuevos usuarios se vio disminuida.
Caracterización demográfica de nuevos usuarios: Al explorar la edad y género de los nuevos usuarios, se pudo observar la diversidad en la composición demográfica del grupo. Se encontraron variaciones en la cantidad de nuevos usuarios por rango de edad, destacándose el rango de 15 a 24 años con una mayor concentración de usuarios. Además, se analizó el porcentaje de nuevos usuarios que representa cada género, identificando proporciones similares para usuarios del los géneros másculinos y femeninos, marcando ambos una notable diferencia en la cantidad de usuarios registrados dentro de otros géneros. Estos datos demográficos proporcionan información valiosa para la implementación de estrategias que fomenten la inclusión y participación equitativa en el servicio.
Preferencias de uso de estaciones: El análisis de las estaciones de inicio y destino más elegidas por los nuevos usuarios para su primer viaje reveló qué las zonas este y noreste de la ciudad son más atractivas para comenzar y finalizar los recorridos. Esto abre oportunidades para, por un lado, optimizar la distribución de estaciones y bicicletas, mejorando así la accesibilidad y disponibilidad del servicio para los nuevos usuarios, y por el otro, reforzar campañas de promoción en el resto de las zonas de la ciudad concon estaciones menos elegidas.
En base a estos resultados, se proponen las siguientes recomendaciones para mejorar la experiencia de los nuevos usuarios, incrementar los registros y fomentar el uso continuo del servicio de Ecobici:
Estrategias de promoción y marketing: Se sugiere utilizar la información sobre los patrones de registro para enfocar las campañas de promoción en los días y meses con menor cantidad altas, siendo estos los más propicios para atraer nuevos usuarios. Asimismo, es importante considerar la segmentación de las campañas en función de los diferentes grupos demográficos, especialmente aquellos que representaron una menor parte de los registros en el primer semestre, lo que aumentará las posibilidades de captar la atención de los grupos de edad y género menos representados.
Adaptación del servicio a preferencias de uso: Considerando las estaciones de inicio y destino más elegidas por los nuevos usuarios, se sugiere reforzar campañas de promoción en el resto de las zonas de la ciudad con estaciones menos elegidas. Esto permitirá fomentar la utilización de estas estaciones menos populares y equilibrar la demanda de uso en diferentes puntos de la ciudad. Al promover estas estaciones, se busca incrementar su visibilidad y atractivo para potenciales usuarios, contribuyendo así a un uso más equitativo y eficiente del servicio “Ecobici”. Además, esta información es útil para realizar ajustes en la distribución y cantidad de bicicletas disponibles en determinadas ubicaciones, lo que contribuirá a una mayor satisfacción y comodidad para los usuarios.
Inclusión y diversidad: Conscientes de las diferencias en la cantidad de nuevos usuarios por rango de edad y género, se recomienda implementar acciones específicas que promuevan la inclusión y diversidad en el uso del servicio, buscando equilibrar la participación de todos los grupos de la población. Para lograrlo, se pueden diseñar campañas de promoción dirigidas a segmentos específicos, destacando aquellos beneficios del servicio que puedan ser más relevantes para cada grupo demográfico. Además, es importante garantizar que la infraestructura y la accesibilidad de las estaciones sean adecuadas para todos, incluyendo medidas para personas con movilidad reducida. Al promover una mayor inclusión y diversidad en el uso del servicio “Ecobici”, se fortalecerá la adhesión de nuevos usuarios, mejorando la experiencia global y la sostenibilidad del sistema de bicicletas públicas en la Ciudad de Buenos Aires.