Lo que se mueve en tu país vecino, y más allá

Wednesday, 30 November 2016

Lo que se mueve en tu país vecino, y más allá

Por Pedro de Alarcón y Javier Carro, Data Scientists en LUCA.

El valor de las llamadas telefónicas internacionales para entender nuestra sociedad

Telefónica dispone de una amplia infraestructura global de red que es ofrecida a otras operadoras para transportar su tráfico internacional de voz y datos. Éste y otros muchos servicios son comercializados por Telefonica Business Solutions (negocio de "wholesale"). El servicio que nos ocupa en este caso consiste básicamente en recoger tráfico de voz y datos en un país (proporcionado por una operadora de telecomunicaciones), transportarlo y entregarlo en otra operadora y país.



Figura 1: Analizamos las llamadas internacionales que gestiona Telefónica para entender cómo se relacionan los países por todo el mundo

Hace pocos días tuvimos la ocasión de procesar algunos meses de datos de este servicio con la intención de encontrar insights asociados a algunas hipótesis que conocemos y descubrimos algunas cosas interesantes con relativo poco esfuerzo de análisis. Toda la información con la que se trabaja se proporciona anonimizada y se almacena y procesa en nuestra infraestructura de Big Data Global.

En el caso de llamadas de voz, las características de cada "evento" del dataset se pueden resumir en un número de teléfono origen, un número de teléfono destino, un timestamp y la duración de la llamada. Hay además una serie de parámetros adicionales de la llamada proporcionados por la red en los que no nos detendremos en esta ocasión.

Aunque los números de teléfono se encuentran anonimizados, disponemos de código de país y, en algunos casos, región/provincia del número llamante y llamado. Se trata, pues, de un dataset con limitaciones en cuanto a variables disponibles, pero muy rico en cuanto a volumen. En cuanto a estructura tiene gran similitud con algunos datos abiertos muy populares sobre tráfico aéreo (ver este ejemplo). De hecho esta similitud nos permitiría reutilizar fácilmente algunas visualizaciones como ésta tan espectacular generada con la herramienta Carto.

Empezamos a escuchar lo que dicen los datos

Dada la información básica que nos proporciona este dataset, la primera exploración que nos planteamos es la evolución del número total de llamadas que se cursan. La siguiente gráfica es una representación diaria del tráfico total cursado.

Volumen llamadas
Figura 2: Representación de un caso específico de volumen de llamadas gestionadas por Telefónica. Se observa el evidente patrón semanal y los curiosos comportamientos intra semanales

Se comprueba un evidente patrón semanal con valles durante los fines de semana. Pero lo que llama la atención son las variaciones intra-semanales y, por supuesto, los casos en los que estas variaciones son muy pronunciadas. Los datos están empezando a hablar. ¿Qué están intentando decirnos?

La respuesta empieza a descubrirse al viajar por los países. Por ejemplo, en la siguiente gráfica se ve la evolución diaria del número de llamadas con destino Italia desde varios países. Los grandes picos que se aprecian en la parte derecha de las gráficas corresponden al día 24 de agosto de 2016, fecha en el que hubo un importante terremoto en Italia.

Volumen llamadas
Figura 3: Representación del volumen de llamadas desde diferentes países hacia Itaila donde se observa el pico correspondiente al terremoto en Italia del 24 de agosto de 2016

Cabe pensar entonces que los datos van a hablar sobre eventos de orden internacional que al menos afecten a una pareja de países. De hecho, empieza a entreverse información más sutil: ¿Por qué la respuesta de Ecuador o Argentina es más pronunciada que la de otros países?. Cualquiera nos animaríamos a explicarlo con un par de argumentos razonables, pero queremos que sean los datos los que lo digan.

Google nos ofrece una herramienta muy útil para ayudarnos a interpretar estos eventos que estamos encontrando. Se trata del proyecto GDELT, que monitoriza en tiempo real lo que sucede en el mundo y el impacto que tiene, considerando el idioma y el lugar donde sucede. De esta forma podemos empezar a enriquecer lo que encontramos en nuestros datos con información local en cada caso. Esta herramienta está disponible en la plataforma BigQuery de Google, por lo que puede consultarse libremente o usar ciertas herramientas analíticas preconfiguradas (que, por cierto, no siempre devuelven los resultados de forma inmediata).

Por ejemplo, en Junio de 2016, Reino Unido votaba su permanencia en la Unión Europea. ¿Hablarán nuestros datos sobre esto?. En efecto lo hacen. Y no sólo hablan del impacto puntual, sino de su impacto durante las semanas siguientes. Se puede comprobar en la siguiente gráfica de llamadas entre Reino Unido y Bélgica (sede de la Comisión Europea). La primera fecha marcada (rojo) es el día de la votación (jueves 23 de junio). Pero se aprecia también el impacto que tuvo durante las semanas siguientes. La segunda fecha marcada, justo un mes después, coincide con la primera publicación de un índice económico (índice Markit) que apuntaba a la contracción económica en Reino Unido.

Volumen llamadas UK y Bélgica
Figura 4: Representación del volumen de llamadas entre UK y Bélgica alrededor del evento de la votación del Brexit en UK

Estas exploraciones iniciales ayudan a plantearse un modelado más formal de las entidades que se están abordando. Estas entidades podrían ser tanto los números de teléfono anonimizados como las regiones geográficas de origen y destino. Y, por otro lado, se pueden tratar como elementos individuales sobre los cuales generamos una serie de indicadores (volumen de minutos de entrada o salida), o bien se pueden tratar en forma de pares de manera que se estaría hablando de una red o grafo dirigido en la que los nodos son las entidades y los arcos conectan aquellos nodos entre los cuales hubo tráfico.

Tipo de entidad considerada Análisis sugeridos
Números de teléfono anonimizados
  • Detección de outliers potencialmente asociados a números que actúan de forma fraudulenta
  • Análisis de comunidades de números basados en llamadas ("Social Network Análisis")
Geografías (país, provincia...)
  • Predicción de tráfico y alertas basados en modelos de series temporales
  • Caracterización de patrones de actividad según variables temporales (laborables/festivos, horario diurno...)
  • Medición de impacto de acontecimientos globales
  • Caracterización de comunidades de países/regiones según el volumen de tráfico entre los mismos
  • Establecer correlaciones con otros datasets (abiertos o disponibles internamente) tales como movilidad, información sociodemográfica, etc.

La siguiente figura muestra un ejemplo de grafo representado sobre un mapa y reflejando las conexiones existentes entre España y el resto de países. En concreto los datos corresponden al 7 de julio de 2016, y llaman la atención las conexiones con países islámicos ya que es la fecha del final del Ramadán, conexiones con países que aportan turistas en verano, etc. En un vídeo más abajo podéis ver la evolución diaria animada de este mapa.

Grafo de conexiones
Figura 5: Grafo de conexiones entre España y resto de países para el 7 de julio de 2016 (fin del Ramadán)

Series Temporales

La naturaleza secuencial y temporal de los datos nos permiten modelarlos como series temporales. El Análisis de Series Temporales es una disciplina de la estadística muy consolidada y para la que se han generado librerías de funciones en prácticamente todos los lenguajes habituales en el análisis de datos (R, Python, Matlab...). Incluso hay herramientas gratuitas, como INZight, que permiten hacer análisis (no muy sofisticados) sin programar una sola línea.

Como primer paso antes de hacer cualquier análisis, es importante comprobar que nuestra serie de datos es estacionaria (la media, varianza y covarianza de sus valores no depende del tiempo) y, si no lo es, hacer que lo sea. Nuestras series de datos en el dataset de llamadas no suelen ser estacionarias, así que nos toca trabajar un poco.

Simplificando, una serie temporal como la que observamos en los datos de tráfico de llamadas, se puede dividir en tres componentes que, sumadas o multiplicadas, producen la serie original:

  • Tendencia. En nuestro caso depende del volumen de tráfico que Telefónica esté enrutando para un país determinado. Es decir, está principalmente vinculado al crecimiento o contracción del negocio generado.
  • Estacionalidad: Claramente existen ciclos semanales, en los que se aprecia un descenso significativo de llamadas en fines de semana.
  • Residuales. Son las diferencias de valores entre la serie de datos original y los valores generados a partir de "tendencia + estacionalidad". Este componente es muy interesante ya que la identificación de picos y valles pueden estar asociados a incidencias técnicas, eventos internacionales, días festivos... En definitiva, el análisis de residuales es el lugar donde mirar si queremos analizar qué pasó fuera de la normalidad de la serie.

Cualquier librería de series temporales (como zoo, xts o timeSeries de R) nos permite extraer fácilmente estas tres componentes.

Descomposición en tendencia
Figura 6. Descomposición en tendencia, estacionalidad y residuales de la serie temporal de volumen de minutos enrutados para un país determinado

El interés habitual en hacer análisis de series temporales es poder generar un modelo predictivo (como los modelos de suavizado exponencial o los modelos ARIMA) que nos anticipe, por ejemplo, cuánto tráfico tendremos en los próximos días. O nos ayude a encontrar verdaderos outliers en la serie (aquellos valores que salen de los intervalos de confianza de la predicción), lo cual es bastante sencillo de hacer en R.

Por su fiabilidad para hacer predicciones a corto plazo, la familia de tests de suavizado exponencial a la cual pertenece el test de Holt-Winters se han popularizado y están disponibles en herramientas de análisis comerciales como Tableau o TIBCO Spotfire.

Los modelos ARIMA son un poco más complejos de aplicar, pero mejoran en muchos casos la predicción de los anteriores ya que tienen en cuenta la dependencia existente entre los datos, es decir, cada punto en un momento dado es modelado en función de valores anteriores. 

Predicción del tráfico
Figura 7: Predicción de tráfico generada con el suavizado exponencial (Holt-Winters)

"Redes sociales telefónicas" inter-país

La información que subyace en el uso de las redes sociales es un valor que ya se utiliza intensivamente en los negocios. El objetivo principal que persiguen las empresas al explotar esta información es segmentar a los clientes para llegar a ellos de forma más eficaz aumentando la probabilidad de que consuman sus productos. Sin embargo, los principales obstáculos para las empresas a la hora de explotar estas fuentes son la complejidad y el coste.

Telefónica dispone de experiencia y conocimiento diferencial sobre la construcción de modelos de redes sociales o SNA (Social Network Analysis) usando por ejemplo patrones de llamadas. En esta ocasión, inspirados en iniciativas con un enfoque más social (por ejemplo Combating global epidemics with big mobile data y Behavioral insights for the 2030 agenda), nos planteamos contribuir a explicar las relaciones existentes entre los países adentrándonos en las redes sociales internacionales que surgen de las comunicaciones telefónicas.

La siguiente figura nos ofrece un primer acercamiento a los datos bajo este tipo de perspectivas. Teniendo en cuenta únicamente los volúmenes relativos de llamadas vemos confirmado, más allá del mero sentido común, el alineamiento con datos socioeconómicos globales.

Volúmenes de llamadas
Figura 8: Volúmenes de llamadas entre parejas de países origen y destino en agosto de 2016. Sólo se representan los países con mayores volúmenes generados y los principales volúmenes de destino para cada uno de ellos

Hay buenas fuentes con datos socioeconómicos internacionales para poder contrastar y complementar lo que se observa en los datos propios. Por ejemplo, se pueden encontrar gran cantidad de datos económicos en el Observatorio económico del MIT, en el Databank del Banco Mundial, o en Eurostat. Y datos de tipo más social (y también económicos) en el banco de datos de Naciones Unidas o en el de UNICEF. Este tipo de datos son muy útiles aunque la granularidad temporal, espacial, o la frecuencia con que se publican, no siempre son ideales. 

Antes de continuar adentrándonos en cómo se relacionan los países, nos detenemos un momento en un detalle relativo a cómo se comportan las personas a la hora de llamar.

En la Figura 9 hemos representado las llamadas que hacen cada día cuatro grupos diferentes de usuarios: los propensos a llamar en horario laboral (verde), en su tiempo libre (azul), los fines de semana (rojo), o por la noche (morado). Esta separación, aunque sencilla, permite una primera segmentación social en usuarios que llaman por "motivos personales" y los que llaman por "motivos profesionales". Podemos destacar, por ejemplo, que el nivel de llamadas en fin de semana prácticamente supera al que se alcanza de lunes a viernes y, además, ninguno de los dos grupos "invade" los días del otro. ¿Previsible?. Insistimos en que no es lo mismo intuirlo que escuchar cómo los datos nos lo dicen y cuantifican.

Llamadas de usuarios
Figura 9: Un caso de evolución diaria de llamadas de usuarios que suelen llamar en horario de oficina (verde), por las tardes de lunes a viernes (azul), en fines de semana (rojo) y por las noches (morado)

Volviendo a la perspectiva inter-país, en la siguiente gráfica vemos una representación geográfica que nos ayuda a entender aún mejor los flujos de comunicación. Los datos originales han sido simplificados y escalados convenientemente para facilitar la legibilidad del mapa. Se pueden observar los aumentos correspondientes a las fechas del final del Ramadán (7/7/2016, tal y como se veía en la Figura 5) y del terremoto en Italia (24/8/2016).

Vídeo 1: Representación animada de las conexiones entre España y resto de países en los meses de junio, julio y agosto de 2016. Se pueden observar los aumentos correspondientes a las fechas del final del Ramadán (6/7/2016) y del terremoto en Italia (24/8/2016). 

Estas representaciones vienen a confirmar los lazos personales (sociales) y profesionales (económicos) que más arriba mencionábamos refiriéndonos a datos socioeconómicos. En la siguiente gráfica profundizamos un poco más mostrando, a modo de zoom del vídeo anterior, las comunicaciones entre regiones más específicas de una zona concreta de Centro Europa.

Comunicaciones en una región
Figura 10: Representación geográfica de comunicaciones en una región acotada de Europa entre provincias 

Recapitulando los factores observados hasta aquí, donde hemos separado tipos de llamadas basándonos en sus hábitos y tenemos información más precisa sobre la localización, podemos empezar a plantearnos de forma más fundamentada la relación entre los datos de las llamadas y diferentes indicadores socioeconómicos, eventos, relaciones comerciales entre regiones, relaciones entre comunidades de personas, etc. Por ejemplo:
  • Podríamos caracterizar las comunicaciones entre zonas eminentemente industriales y comprobar casos como la relación entre puertos marítimos comerciales relacionados mediante líneas de transporte de mercancías entre ellos.
  • Caracterizar la comunicación entre zonas origen y destino de emigración y compararlos con datos históricos de emigración internacional viendo que son coherentes con los datos de llamadas de perfil "residencial". Hemos podido contrastar esta coherencia entre, por ejemplo, Argentina e Italia, algo que cabría esperar. Y también cabe esperarlo de España y Alemania. ¿Pueden entonces las llamadas convertirse en un indicador de emigración en tiempo real?. ¿Se pueden inferir los destinos actuales de emigración?.
Obviamente, nuestras comunicaciones nos describen.

No comments:

Post a Comment