38 Millones de Viajes en Ecobici

Esta publicación está inspirada en el trabajo fantástico de Todd Schneider de enero del 2016: A Tale of Twenty-Two Million Citi Bike Rides: Analyzing the NYC Bike Share System.

Aprendí una gran cantidad estudiando el trabajo de Todd, y me inspiró a intentar un análisis similar del sistema de bicicletas públicas en la Ciudad de México, que se llama 'Ecobici'.

No solo me fascinaba ver de manera detallada cómo se usan las bicicletas día a día, pero también me dio gusto tener la oportunidad de aprender a usar herramientas y técnicas nuevas.

Algunos de mis análisis son replicas casi idénticas del trabajo de Todd usando los datos de Ecobici, aunque son mi propia implementación en Python en vez de R. Por eso estoy increíblemente agradecido con Todd por el haber hecho su trabajo tan públicamente disponible.

Esta publicación está dividida en las siguientes secciones:

  1. Un día en la vida de Ecobici
  2. Los datos y el uso de las bicicletas
  3. ¿Dónde están las usuarias?
  4. Estimaciones de la velocidad
  5. Transportes mágicos de bicicletas
  6. Datos anónimos
  7. ¿Se puede predicir la duración de un viaje?

1. Un día en la vida de Ecobici

En cuanto ví la animación de Todd de Nueva York, supe que era algo que yo quería tratar de replicar, no solo porque se veía padre, pero también porque yo creo que da un verdadero sentido de la escala del sistema.

El enfoque es muy similar: cada punto azul representa un viaje en bicicleta usando las instrucciones de Google Maps para ciclistas. Obviamente no se puede asumir que la gente necesariamente va a seguir esa ruta, y en muchos casos es muy probable que no irían directamente de una estación a otra, sin embargo es un buen comienzo para obtener un sentido de los patrones en los viajes.

La fecha en cuestión es el miércoles 6 de Abril, la cual es el 3er día más ocupado en la historia de Ecobici; este fue seleccionado porque los dos días más ocupados fueron en el 2015 y quería usar una fecha más reciente para poder tomar en cuenta las construcciones y obras más recientes.

En total hubo 36,711 viajes ese día, pero para reducir la cantidad de información requerida para la visualización elimine todos los viajes que comenzaron y acabaron en la misma locación, y me enfoque específicamente en viajes en las partes más centrales y al norte de la ciudad (de Roma Sur hacia arriba, lo cual incluye 274 de 452 estaciones) resultando en un total de 26,271 viajes.


Es bastante hipnotizante ver los puntos azules hacer su camino a través del mapa y ya se puede ver algunas concentraciones de bicicletas (por el brillo del azul), en particular en la calle principal (Reforma) cortando de manera diagonal la mitad superior del mapa.

Podemos ir un paso más allá y ver cuales calles salen más frecuentemente dentro de las rutas de Google Maps, basado en el número de viajes que usan ese calle.

Las calles más populares para viajes en Ecobici

popular_bike_routes

Las calles rojas y gruesas son aquellas que tienen 500 viajes o más. Los puntos anaranjados son estaciones de Ecobici.

Los estrechos grandes de Reforma, División del Norte y Patriotismo, al igual que una sección al Sur de Felix Cuevas, están claramente marcadas.

No es sorprendente ver que estas calles aparecieron tan frecuentemente, ya que son calles claves que conectan diferentes partes de la ciudad, y al mismo tiempo tienen una buena cobertura de carriles para bicicletas.

Una cosa que se me hizo interesante fue ver, como en un solo día, los viajes en bicicleta eran muy probables de cubrir casi todas las calles dentro del area de Ecobici. ¡Al simplemente trazar cada paso, acabamos con un mapa bastante completo de la ciudad!

2. Los datos y el uso de las bicicletas

El sistema de “Ecobici” comenzó en el 2010, y desde entonces ha crecido de manera significativa en términos de uso. Abajo se encuentra una gráfica demostrando el número total de viajes en bicicleta por año:

trips_per_year

El punto de inflexión fue por ahí en el año 2013 cuando el uso de bicicletas explotó con dos y medio veces más viajes en bicicleta comparado con el año anterior. Hasta ahora, el 2015 ha tenido los más altos niveles de uso.

El número de bicicletas en circulación también ha aumentado poco a poco, con bicicletas nuevas llegando en grandes cantidades cada par de años.

bikes_per_year

Interesantemente, en el 2016 se añadieron 2,000 bicicletas, a pesar de que el número de paseos no había incrementado.

Con un incremento anual de al menos un 15% entre el 2013 y el 2015, puede ser que el operador de Ecobici estaba provisionando para un incremento similar en el 2016 que nunca se concretó.

Alternativamente, podría ser que había una escasez en el 2015 y por lo tanto las nuevas adiciones fueron simplemente para alcanzar la demanda.

La Escala de Ecobici

El sistema Ecobici funciona de forma similar a los ”ride-shares” existentes en otros países con estaciones fijos donde uno puede recoger y entregar bicicletas. A partir de hoy, hay un total de 452 estaciones de bicicletas alrededor de la ciudad, cubriendo un área de aproximadamente 55 kilómetros cuadrados.

El sistema opera de Lunes a Domingo de 5AM a 12.30AM todos los días del año, aunque el servicio se ve reducido durante algunos días festivos.

Al final de Diciembre 2016 había un total de 38,661,411 de viajes en Ecobicis.

Los Datos

Datos mensuales están disponibles para Ecobicis, incluyendo la información a continuación acerca de cada viaje:

  • Fecha y hora del comienzo del viaje
  • Fecha y hora de la terminación del viaje
  • Estación de partida
  • Estación de entrega
  • Género del usuario
  • Edad del usuario
  • Identificador único de la bicicleta

El número de viajes mensuales entre Enero del 2013 y Diciembre del 2016, se puede observar a continuación:

monthly_trips

Se puede ver que el uso baja considerablemente cada año alrededor de Diciembre...probablemente por las vacaciones de Navidad. En Junio hay decaídas menores, lo cual coincide con el comienzo de la temporada de lluvias.

El Uso Promedio

El número de viajes en bicicleta es mucho más alto entre semana que durante el fin de semana. Los patrones de uso también varían a lo largo del día.

Entre semana, hay picos claros a las 8AM y 6PM, muy probablemente representando gente viajando hacia y de regreso de su trabajo. También hay un incremento en actividad entre las 2 y 3 PM, lo cual coincide con la hora de la comida para los trabajadores de oficina.

En los fines de semana, el incremento es más gradual, y la mayor parte de la actividad ocurre entre las 10 AM y las 17 PM.

monthly_trips

3. ¿Dónde están las usuarias?

Las mujeres usan las Ecobicis mucho menos que los hombres, y la diferencia ha ido en aumento:

trips_by_gender

Las mujeres que sí usan las Ecobicis tienden a ser más jóvenes, con el 73% teniendo 35 años o menos contra solo un 61% de usuarios masculinos.

age_distribution_by_gender

En promedio, las usuarias femeninas cuentan por un 26% de todos los viajes entre Enero del 2013 y Julio del 2016.

Nos podemos hacer una idea de los patrones de uso de las mujeres durante el día comparando las proporciones de viajes iniciados por mujeres contra este porcentaje promedio.

Se puede ver que las mujeres son más probables de usar Ecobicis los fines de semana, particularmente en horario diurno, y menos probables de pasear tarde en la noche o muy temprano en la mañana.

age_distribution_by_gender

También se puede analizar cómo el uso de Ecobici por mujeres varía por región de la ciudad. Un posible método es calcular los porcentajes por género de los viajes comenzadas en las diferentes estaciones, sin embargo el problema con esto es que en muchos áreas las estaciones están muy cercas una de la otra, lo cual complica poder distinguir patrones con facilidad.

Otra opción puede ser agrupar las estaciones por colonia, y ver la distribución de género por cada colonia; sin embargo hay varias colonias muy grandes dentro del rango de Ecobici, por lo tanto este enfoque no captura todos los detalles.

Al final decidí dividir la ciudad en hexágonos, agrupando estaciones de Ecobici por hexágono. Cada uno tiene una anchura de 800m y cubre un área de aproximadamente 0.4 km cuadrados, resultando en un total de 112 hexágonos cubriendo las partes de la ciudad con estaciones de Ecobici. El número mediano de estaciones por hexágono es 4.

A continuación hay un mapa demostrando los porcentajes de viajes iniciados por mujeres dentro de cada hexágono:

female_usage_by_area

Se puede observar que el uso por mujeres está particularmente concentrada alrededor de la Colonia Roma y áreas de la Condesa, y el uso está por debajo del promedio dentro y alrededor del Centro y la Colonia Cuauhtemoc.

4. Estimaciones de la velocidad

No entraré a mucho detalle acerca de la velocidad de los viajes, sin embargo es interesante ver como la velocidad puede variar según edad y género.

A pesar de que la velocidad no está incluida entre los datos brutos, se puede estimar usando el tiempo de comienzo y terminación del paseo, junto con los datos de rutas de Google Maps.

La gráfica abajo plantea la velocidad promedia estimada por género y edad, tanto durante la semana como los fines de semana.

ecobici_avg_speed

(Nota que el análisis de estas gráficas ignora todos los viajes con una duración menor a 60 segundos en total, y restringe la edad del usuario a 65 años o menos.)

Lo primero que se puede ver es que, en promedio, los usuarios masculinos consistentemente van más rápido que las usuarias femeninas, y que en ambos sexos, los usuarios jóvenes van más rápido que los usuarios mayores (las dos cosas no son tan sorprendentes).

También se puede ver que los viajes durante el fin de semana son más bien por el gusto de pasear en bici, con una velocidad en general más baja por aproximadamente 1-2 km por hora.

Obviamente esto asume que el usuario sigue la ruta sugerida por Google y que no hace ninguna parada a lo largo del camino.

5. Transportes mágicos de bicicletas

Cuando se ejecuta un servicio como Ecobici, una cuestión logística interesante es cómo manejar la oferta y demanda de las bicicletas en cada estación. Inevitablemente, cuando los usuarios han ido de paseo, no todas las bicicletas acabaran en una locación ideal, y podría ser necesario que el operador tenga que transportar bicicletas de una estación a otra para equilibrar la oferta.

Se puede ver como esto funciona con cierto detalle al analizar los viajes en bici que comienzan en una estación diferente a la que habían sido previamente entregadas. Todd llama a estos ‘transportes mágicos’.

Aquí hay una gráfica de los transportes mágicos, visto como un porcentaje del total de los viajes por mes:

magical_transports_by_month

Entre el 2012 y 2014, la proporción fue más o menos constante entre 16 a 17%, y después se cayó fuertemente en el 2015, tal vez porque el número de bicicletas casi se duplico (desafortunadamente no tengo datos sobre cuando comenzaron a operar las diferentes estaciones, o si su capacidad haya cambiado durante el tiempo).

Curiosamente, el porcentaje de transportes mágicos ha incrementado de nuevo durante el 2016, incluso mientras el número de bicicletas ha continuado aumentar.

Podemos analizar cuáles son las regiones de la ciudad que tienen una proporción mayor de transportes mágicos, basado en la estación de entrega del viaje:

magical_transports_by_area

Parece que los viajes acabando alrededor del Centro y Polanco y también los que terminan en el lado este de la zona Ecobici resultan en más altos niveles de transportes mágicos.

La necesidad de mover bicicletas de un lugar al otro tiene diferentes patrones a lo largo del día depende de donde termina el viaje. Por ejemplo, para los viajes que terminan en el Centro Histórico los niveles altos de transportes mágicos se extienden a lo largo del día, mientras que en el sur están más concentrados en las horas tempranas de la mañana.

magical_transports_by_hour

Por último, podemos analizar las distancias promedias del transporte mágico de bicicletas.

magical_transports_distances

Parece que, en general, los transportes mágicos tienen una distancia promedia entre 1 a 3km., aunque hay puntos aislados de bicicletas siendo transportadas casi de un lado al otro de la zona Ecobici.

Hay una cosa que cabe mencionar sobre los transportes mágicos, lo cual es que puede haber otras razones por las cuales las bicicletas se encuentran en una locación diferente de donde fue entregada, y no siempre será para equilibrar la capacidad.

Por ejemplo, si una bicicleta es retirada de la circulación por razones de mantenimiento o reparaciones (actualmente aproximadamente un 1% de bicicletas al día), de ninguna manera está garantizado que será regresada a la estación original de donde salió.

6. Datos anónimos

Otra cosa que Todd analiza para los “NYC Citibikes” son los datos anónimos, medidos por la proporción de viajes que son únicamente identificables.

En este caso, cuando hablamos de “anónimo”, no estamos hablando de la presencia de nombres u otros identificadores en los datos, pero del concepto de anonimato que viene de ser parte de una multitud.

En práctica esto quiere decir que si hay muchos paseos que comparten exactamente las mismas características, y aunque lograras identificar a uno de los usuarios, sería difícil obtener mayor información sobre su viaje en particular.

Sin embargo, para viajes “únicos”, uno puede obtener información completa fácilmente, incluyendo cosas como locaciones de entrega lo cual te puede decir algo acerca de donde estas personas viven, trabajan, etc.

Resulta que con tan solo unos pocos variables como:

  • Edad del usuario
  • Sexo del usuario
  • Identificación de la estación de partida
  • Hora de inicio

una gran proporción de los viajes son únicamente identificables.

Por ejemplo, el 1o de Enero del 2016, solo hubo un paseo a las 8AM de una usuaria femenina de 34 años que comenzó en la estación 182.

Abajo hay una gráfica de los porcentajes de viajes únicamente identificables por género y edad.

unique_trips

Como se esperaba, la proporción es más alta para mujeres (hay menos usuarias en total), y también más alto para usuarios mayores (la distribución de edad de usuarios se va aplanando en lo que va incrementando la edad).

7. ¿Se puede predicir la duración de un viaje?

Como una pregunta final, me pregunté si era posible predecir la duración de un viaje en particular con los datos disponibles.

Desde un punto de vista operativo esto podría ser muy útil para planear y manejar la disponibilidad de bicicletas.

Recuerda que los datos que tenemos disponibles son:

  • Género
  • Edad en años
  • Hora y fecha de inicio y terminación del viaje
  • Estación de partida y entrega

aunque no es apropiado incluir la información acerca de la hora y locación de terminación, ya que el objetivo es predecir la duración por adelantado.

La duración del paseo no se dé explícitamente, pero se puede calcular con facilidad usando “timestamps” para el tiempo de comienzo y de terminación.

Regresión lineal

Dado lo que sabemos acerca del impacto de género y edad en la velocidad estimada de los viajes, un enfoque simple podría ser tratar esto como un problema de regresión lineal usando estos dos variables.

Para obtener una idea del éxito que esto podría tener, he graficado la duración del paseo contra la edad del usuario para una muestra aleatoria de 10,000 viajes:

duration_v_age

Es claro que no hay una relación lineal, y también se puede ver que en cada edad hay un gran rango de duraciones en los viajes.

Como el próximo paso, podríamos intentar añadir características adicionales para analizar la duración de los viajes para segmentos mucho más específicos. Por ejemplo, abajo se grafica la distribución de las duraciones para las usuarias femeninas de 25 años, entre semana, partiendo a las 9 AM de 3 estaciones que están cerca una de la otra en Polanco:

subset_distribution

Hasta para esta subcategoría muy específica, todavía se encuentra un gran rango de duraciones de paseo, y por lo tanto, al parecer sería difícil crear un modelo preciso con los datos disponibles.

Clasificación en “rangos”

Incluso si intentamos resolverlo a través de clasificación en lugar de regresión, continuaría siendo difícil crear un modelo lo suficientemente preciso.

Por ejemplo, tomando el ejemplo de arriba y usando intervalos de 10 minutos, hay al menos tres posibles clases, y no hay más variables para ayudar a diferenciar entre ellas.

Si usamos intervalos más pequeños, por ejemplo de 5 minutos, entonces el problema sería aún más dificil; con plazos de tiempo más largos de 20 ó 30 minutos, no obtenemos nada ya que sabemos que la gran mayoría de los viajes duran menos de media hora.

Para demostrar esto, intenté entrenar un “random forest” (1,000 estimadores) con una muestra aleatoría de 1,000,000 de viajes y usando aproximadamente 120 características consistiendo de:

  • Género
  • Edad
  • Indicador de entre semana vs. fin de semana
  • Hora de partida
  • Mes
  • Ubicación de estación de inicio (agrupado por hexágono)

El mejor resultado que obtuve, después de optimizar los parámetros con "cross-validation", fue una precisión menor al 50%.

Podría ser posible obtener una mejoría pequeña en la precisión, por ejemplo con optimización adicional o usando un modelo capaz de capturar más complejidad, sin embargo no creo que los datos disponibles sean suficientes para crear un modelo predictivo útil.

Si por otro lado uno tuviera acceso a las historias de viajes de los usuarios individuales, entonces probablemente sería más posible crear un modelo más preciso.

Conclusión

Cuando empecé este mini-proyecto, pensé que sería relativamente fácil hacer algo similar al análisis de Todd de Nueva York dado que tenía su codigo para estudiar.

Al final tomó más tiempo de lo que esperaba, en parte porque tuve que aprender herramientas y técnicas nuevas (por ejemplo POSTGIS y el uso de 'queries' geográficas), pero también porque se me hizo fácil perderme al explorar los datos y buscar otras historias interesantes que contar.

Inclusive ahora siento que apenas he tocado la superficie de la los datos, y hay mucho más que me gustaría explorar.

En particular sería interesante ver la distribución temporal de la partida de los viajes por estación, por ejemplo para preguntar cuál es la probabilidad de que una bicicleta (o más) será tomada de una estación en particular dentro de un plazo de tiempo específico.

Uno de los elementos que disfrute en particular mientras estaba escribiendo este post fue meterme más a la parte de mapear. Hubo un momento en particular cuando estaba trazando las instrucciones de Google Maps sobre una página en blanco por primera vez, y de repente un mapa casi completo de la ciudad apareció con todas las calles, glorietas, parques, etc.

¡Se me hizo muy padre!

Como siempre, mi código acompañante (por si a alguien más se le haga útil) está en GitHub.


Written by Simon Bedford in Data Science on Wed 08 February 2017. Tags: data-science, visualization,