Innova Challenge BBVA: BBVAPlaces
Estimación de consumos a partir de datos de Google Places

Datos de Partida

El API de Google Places nos permite conocer el número de establecimientos para cada categoría, así como su valoración social media en un área determinada. La petición unitaria a Places nos devuelve, a partir de una categoría, centro geográfico y radio determinado, la lista completa de establecimientos en esa zona, acompañados de información tal como su valoración social (de 1 a 5), localización exacta, precio medio, etc. Lamentablemente, en esta información, no se cuenta con el código postal de cada establecimiento, ni es posible pasar el código en la consulta. Para conseguir esta información ligada a los códigos postales hemos seguido el siguiente proceso:

  1. Preparar una rejilla de puntos para cada ciudad. Para Madrid, 22500 puntos; en Barcelona, 16900 puntos
  2. Pedir los establecimientos para cada punto y categoría, con el radio adecuado para cubrir toda la rejilla
  3. Usando un algoritmo de 'point in polygon', asociar un código postal a cada establecimiento devuelto
  4. Consolidar la información por cada código postal y categoría de establecimiento, obteniendo el agregado de número de establecimientos y valoración media, así como el número de valoraciones
Hay que destacar que para lanzar este volumen de consultas a Google Places, hay que abrirse una cuenta especial que nos permite realizar hasta 100000 consultas al día.

El número final de establecimientos analizados para Madrid es el siguiente: 21817 establecimientos de 'food', 12747 de 'fashion' y 3301 de 'hotel'

El número final de establecimientos analizados para Barcelona es el siguiente: 18299 establecimientos de 'food', 10979 de 'fashion' y 3004 de 'hotel'

El mapeo de tipos de 'place' a los tipos de establecimiento de BBVA son los siguientes:

Finalmente, para cruzar toda la información:
  1. Hemos consultado el API provista por el consurso BBVA Innova Big Data para obtener la media de transacciones diaria por cada código postal y categoría
  2. Hemos normalizado el número de pagos por establecimiento y código postal al área en km cuadrados de cada código postal
  3. Finalmente, hemos fusionado el dataset consolidado de Google Places con el del punto anterior, junto con una columna con la geometría (polígono o multipolígono, feature GeoJSON) de cada código postal, para generar mapas de manera cómoda en CartoDB
Por tanto, el dataset final, contiene, para cada ciudad, código postal y categoría:
  1. El número de pagos por unidad de área geográfica (densidad de pagos: "numPaymentsDensity")
  2. El número de establecimientos por unidad de área geográfica (densidad de "places": "numPlacesDensity")
  3. El número de valoraciones totales ("valuedPlaces")
  4. La media de estas valoraciones ("valueAvg")
  5. La medida tentativa de 'éxito local': El resultado de dividir el número de pagos por el número de "places" ("paymentsPerPlace")

Herramientas usadas

Los polígonos de la ciudad de Barcelona proceden de aquí y los de la ciudad de Madrid de aquí

Equipo