Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, SYSTEM AND COMPUTER PROGRAM FOR CHARACTERISING GEOGRAPHIC AREAS
Document Type and Number:
WIPO Patent Application WO/2024/013408
Kind Code:
A1
Abstract:
The present invention discloses a method, system and computer program for characterising geographic areas. The method comprises accessing user data from a mobile network operator, said data being associated with active and/or passive network events from the connections established between user mobile devices and mobile network operator towers; calculating a set of user parameters using said accessed data, the calculation of the parameters comprising: calculating a visit parameter, calculating points of interest of each user, and obtaining web browsing data from mobile devices based on obtaining network traffic from each device in the network; and determining a characterisation profile of a geographic area by calculating a sociodemographic profile of the temporary and permanent resident users in said geographic area.

Inventors:
BARBADO GONZÁLEZ ALBERTO (ES)
DÍAZ SÁNCHEZ ELENA (ES)
LORENTE BOROX ANA MARÍA (ES)
AMENEDO CASTRO MAR (ES)
Application Number:
PCT/ES2022/070461
Publication Date:
January 18, 2024
Filing Date:
July 15, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TELEFONICA IOT & BIG DATA TECH S A (ES)
International Classes:
G06Q90/00; H04W4/021; H04W8/08; H04W64/00
Other References:
ZHENZHEN WANG ET AL.: "Applying mobile phone data to travel behaviour research: A literatura Review", ELSEVIER . TRAVEL BEHAVIOUR AND SOCIETY, vol. 11, 24 March 2017 (2017-03-24), pages 141 - 155, XP093129816, Retrieved from the Internet DOI: 10.1016/j.tbs. 2017.02.00 5
CALABRESE FRANCESCO, FERRARI LAURA, BLONDEL VINCENT D.: "Urban Sensing Using Mobile Phone Network Data: A Survey of Research", ACM COMPUTING SURVEYS., ACM, NEW YORK, NY, US., US, vol. 47, no. 2, 8 January 2015 (2015-01-08), US , pages 1 - 20, XP093129817, ISSN: 0360-0300
BONNEL PATRICK, HOMBOURGER ETIENNE, OLTEANU-RAIMOND ANA-MARIA, SMOREDA ZBIGNIEW: "Passive Mobile Phone Dataset to Construct Origin-destination Matrix: Potentials and Limitations", TRANSPORTATION RESEARCH PROCEDIA, vol. 11, 1 January 2015 (2015-01-01), pages 381 - 398, XP093129818, ISSN: 2352-1465, DOI: 10.1016/j.trpro.2015.12.032
ANONYMOUS: "Mobile positioning data", WIKIPEDIA, 30 June 2022 (2022-06-30), XP093130074, Retrieved from the Internet [retrieved on 20240212]
Attorney, Agent or Firm:
ARIZTI ACHA, Mónica (ES)
Download PDF:
Claims:
REIVINDICACIONES

1. Método implementado por ordenador para caracterización de zonas geográficas, comprende:

- acceder a datos de una operadora móvil relativos a una pluralidad de usuarios, estando dichos datos asociados a eventos de red, activos y/o pasivos, de las conexiones realizadas entre los dispositivos móviles de la pluralidad de usuarios con unas antenas de una red de la operadora móvil;

- calcular una serie de parámetros de la pluralidad de usuarios utilizando dichos datos accedidos, comprendiendo el cálculo de la serie de parámetros: el cálculo de un parámetro de estancia, el cálculo de unos puntos de interés de cada uno de la pluralidad de usuarios, y la obtención de datos de navegación web de los dispositivos móviles de la pluralidad de usuarios en base a la obtención del tráfico de red de cada dispositivo móvil dentro de la red;

- determinar un perfil de caracterización de una zona geográfica mediante la realización de las siguientes etapas:

- calcular un perfil sociodemográfico, incluyendo género, franja de edad y/o nivel de renta, de unos usuarios residentes, tanto temporales como permanentes, en dicha zona geográfica utilizando dichos datos asociados a eventos de red, activos y/o pasivos;

- asignar un peso estadístico a cada usuario residente utilizando información de un primer conjunto de datos relativa al censo de la zona geográfica para usuarios residentes nacionales e información obtenida de fuentes externas para usuarios residentes internacionales, combinar los pesos estadísticos asignados, y extrapolar a la población general;

- agregar la información extrapolada por microsegmentos en base a una ubicación de la zona geográfica, a la franja de edad, género y nivel de renta de los usuarios residentes.

2. Método según la reivindicación 1 , en donde el género de los usuarios residentes se obtiene mediante: filtrado de un segundo conjunto de datos que incluye información de un identificador único del dispositivo móvil de cada usuario residente y unos parámetros asociados a los puntos de interés calculados y del primer conjunto de datos para un periodo de tiempo de observación y para el ámbito nacional; muestreado, con o sin reemplazamiento, de los datos filtrados.

3. Método según la reivindicación 1 o 2, en donde el nivel de renta se obtiene mediante: identificación de unos usuarios residentes con comportamiento anómalo mediante la ejecución de un algoritmo de aprendizaje automático sobre el primer conjunto de datos, el segundo conjunto de datos y un tercer conjunto de datos relativo a unos prototipos de usuarios residentes cuyo nivel de renta ya ha sido identificado previamente; eliminación de los usuarios residentes con comportamiento anómalo identificados; clasificación de los usuarios residentes con comportamiento no anómalo en diferentes clústeres según su nivel de renta; asignación a los usuarios residentes con comportamiento anómalo de un nivel de renta por defecto de la zona geográfica; combinación de los clústeres de los usuarios residentes con comportamiento no anómalo con los datos del nivel de renta por defecto de los usuarios residentes con comportamiento anómalo.

4. Método según una cualquiera de las reivindicaciones anteriores, en donde la determinación del perfil de caracterización de la zona geográfica comprende, además, el cálculo del comportamiento de los usuarios residentes mediante la realización de las siguientes etapas:

- el cálculo de un grupo de variables relacionadas con la movilidad diaria de los usuarios residentes en base a la determinación de cuándo y dónde se ha realizado una pernoctación utilizando un cuarto conjunto de datos que incluye el identificador único del dispositivo móvil de cada usuario residente y unos parámetros asociados al parámetro de estancia calculado y unos parámetros configurables que indican unas horas donde debe estar un evento de red para ser considerado una pernoctación;

- el cálculo de un grupo de variables relacionadas con viajes de los usuarios residentes en base al cálculo de al menos dos de: la identificación del recorrido del viaje de los usuarios residentes utilizando, al menos, el segundo conjunto de datos, un quinto conjunto de datos que incluye información de las pernoctaciones dentro del territorio nacional, y un sexto conjunto de datos relativos a itinerancia, la identificación de unos destinos frecuentes de los usuarios residentes utilizando el cuarto conjunto de datos y el segundo conjunto de datos, la identificación de excursiones realizadas por los usuarios residentes utilizando, al menos, el segundo conjunto de datos, el cuarto conjunto de datos, el quinto conjunto de datos e información de los destinos frecuentes identificados;

- el cálculo de un grupo de variables relacionadas con la navegación web de los usuarios residentes en base a: la determinación de un índice de interés medio por categoría de navegación utilizando un séptimo conjunto de datos que incluye el identificador único del dispositivo móvil de cada usuario residente, un periodo de tiempo asociado a la navegación web, una categoría de la navegación web y el tiempo total de la navegación web, y a la determinación de un índice de interés individual, por usuario residente y categoría, dividiendo la navegación web de un usuario residente concreto entre el índice de interés medio determinado.

5. Método según una cualquiera de las reivindicaciones anteriores, que comprende, además, utilizar una o más fuentes de información comprendiendo variables relativas a la conectividad, incluyendo el acceso al transporte público, metro, y/o autobús; variables relativas a los hogares, incluyendo tamaño medio de los hogares, composición, y/o número de hogares; y/o variables relativas a la urbanidad, incluyendo tipología de las viviendas en base a su antigüedad, tamaño y tipo de instalaciones; tipología del área en función de si es residencial, comercial/ocio u oficinas.

6. Método según una cualquiera de las reivindicaciones anteriores, en donde el cálculo del parámetro de estancia se realiza mediante la agregación de un determinado número continuo de eventos de red en la ubicación geográfica determinada, teniendo dicho número continuo de eventos de red una duración mínima preestablecida.

7. Método según la reivindicación 6, en donde el cálculo de los puntos de interés comprende la ejecución de unos modelos de aprendizaje automático sobre los parámetros de estancia calculados.

8. Método según una cualquiera de las reivindicaciones anteriores, en donde los puntos de interés calculados incluyen al menos la identificación del lugar de residencia y de trabajo de los usuarios.

9. Método según una cualquiera de las reivindicaciones anteriores, en donde los eventos de red activos comprenden Registros Detallados de Llamadas, CDRs, incluyendo llamadas telefónicas realizadas por los dispositivos móviles, y Registros Detallados Extendidos, XDR, incluyendo información de navegación web de los dispositivos móviles.

10. Método según las reivindicaciones anteriores, en donde los eventos de red pasivos comprenden información referente al encendido, recuperación de cobertura, cambio de celda y/o cambio de red de los dispositivos móviles.

11. Método según las reivindicaciones anteriores, en donde el cálculo del parámetro de estancia comprende, además, detectar y eliminar unos eventos de parpadeo/intermitencia entre las antenas de red.

12. Método según la reivindicación 1 , en donde los microsegmentos comprenden al menos masculino y femenino para género; de 18 a 29, de 30 a 39, de 40 a 49, de 50 a 59, de 60 a 59 y mayores o ¡guales a 70 para la franja de edad; y baja, media, media-alta y alta para el nivel de renta.

13. Un sistema para caracterización de zonas geográficas, comprende: una memoria o base de datos configurada para almacenar datos de una operadora móvil relativos a una pluralidad de usuarios, estando dichos datos asociados a eventos de red, activos y/o pasivos, de las conexiones realizadas entre los dispositivos móviles de la pluralidad de usuarios con unas antenas de una red de la operadora móvil; una unidad de computación que incluye una memoria y al menos un procesador, en donde el procesador está adaptado y configurado para caracterizar una zona geográfica mediante la ejecución de las siguientes etapas:

- calcular una serie de parámetros de la pluralidad de usuarios utilizando dichos datos accedidos, comprendiendo el cálculo de la serie de parámetros: el cálculo de un parámetro de estancia, el cálculo de unos puntos de interés de cada uno de la pluralidad de usuarios, y la obtención de datos de navegación web de los dispositivos móviles de la pluralidad de usuarios en base a la obtención del tráfico de red de cada dispositivo móvil dentro de la red;

- determinar un perfil de caracterización de la zona geográfica mediante:

- cálculo de un perfil sociodemográfico, incluyendo género, franja de edad y/o nivel de renta, de unos usuarios residentes, tanto temporales como permanentes, en dicha zona geográfica utilizando dichos datos asociados a eventos de red, activos y/o pasivos;

- asignación de un peso estadístico a cada usuario residente utilizando información de un primer conjunto de datos relativa al censo de la zona geográfica para usuarios residentes nacionales e información obtenida de fuentes externas para usuarios residentes internacionales, combinar los pesos estadísticos asignados, y extrapolar a la población general;

- agregación de la información extrapolada por microsegmentos en base a una ubicación de la zona geográfica y a la franja de edad, género y nivel de renta de los usuarios residentes.

14. Producto de programa de ordenador que incluye instrucciones de código que cuando se ejecutan en un sistema de computación implementan un método según una cualquiera de las reivindicaciones 1 a 12.

Description:
MÉTODO, SISTEMA Y PROGRAMA DE ORDENADOR PARA CARACTERIZACIÓN DE ZONAS GEOGRÁFICAS

DESCRIPCIÓN

Campo de la técnica

La presente invención concierne a un método, sistema y programas de ordenador para caracterización (o perfilado) de zonas geográficas, particularmente, usando datos de una operadora móvil. Más en particular, la presente invención permite perfilar un área geográfica específica (por ejemplo, una sección censal), en base al comportamiento e información sociodemográfica de la población que reside en ella, determinado desde los datos que se recogen de la red móvil y de las líneas de teléfono.

Antecedentes de la invención

Existen soluciones de caracterización/perfilado de usuario en base a su historial de navegación, o en base a su movilidad, que puede incluir localización por GPS o por dispositivo móvil.

Por ejemplo, la patente US10163113B2 muestra un método para generar un perfil de usuario basado en capturar la ubicación periódica de un usuario a partir del teléfono móvil o la información GPS. Se generar un historial de ubicación a partir de la correlación de localizaciones acumuladas. A continuación, se analiza el historial de ubicaciones para detectar los patrones de viaje y permanencia del usuario. Esa información se puede combinar con la clasificación de negocio, comercial o bases de datos de puntos de interés (PO I ) para identificar el hogar, el trabajo u otras ubicaciones probables de un usuario en función de los tiempos de permanencia, la hora del día y otros parámetros.

La patente US10592914B2 muestra un método para determinar un gráfico de permanencia del dispositivo de un usuario basado en geolocalizaciones, que individualmente son bastante inexactas, pero acumuladas de un historial y el tiempo de acampado del dispositivo dan más precisión.

La patente US10515392B1 muestra un método para la detección y el análisis geográfico, temporal y basado en la ubicación de dispositivos de comunicación móvil en una red de comunicación, donde recoge la ubicación de los terminales a partir de las celdas móviles; y a partir del histórico establece límites temporales y realiza un análisis de patrones con el que correlar posibles puntos de interés d ellos usuarios. Exposición de la invención

Ejemplos de realización de la presente invención aportan de acuerdo a un primer aspecto un método implementado por ordenador para caracterización de zonas geográficas. El método comprende: acceder a datos de una operadora móvil relativos a una pluralidad de usuarios, estando dichos datos asociados a eventos de red, activos y/o pasivos, de las conexiones realizadas entre los dispositivos móviles de la pluralidad de usuarios con unas antenas de una red de la operadora móvil; calcular una serie de parámetros de la pluralidad de usuarios utilizando dichos datos accedidos, comprendiendo el cálculo de la serie de parámetros: el cálculo de un parámetro de estancia, el cálculo de unos puntos de interés de cada uno de la pluralidad de usuarios, y la obtención de datos de navegación web de los dispositivos móviles de la pluralidad de usuarios en base a la obtención del tráfico de red de cada dispositivo móvil dentro de la red; y determinar un perfil de caracterización de una zona geográfica mediante: el cálculo de un perfil sociodemográfico, incluyendo género, franja de edad y/o nivel de renta, de unos usuarios residentes, tanto temporales como permanentes, en dicha zona geográfica utilizando dichos datos asociados a eventos de red, activos y/o pasivos; asignación de un peso estadístico a cada usuario residente utilizando información de un primer conjunto de datos relativa al censo de la zona geográfica para usuarios residentes nacionales e información obtenida de fuentes externas para usuarios residentes internacionales, combinación de los pesos estadísticos asignados, y extrapolación a la población general; y agregación de la información extrapolada por microsegmentos en base a una ubicación de la zona geográfica, a la franja de edad, género y nivel de renta de los usuarios residentes.

Ejemplos de realización de la presente invención aportan también, de acuerdo a un segundo aspecto, un sistema para caracterización de zonas geográficas. El sistema incluye: una memoria o base de datos configurada para almacenar datos de una operadora móvil relativos a una pluralidad de usuarios, estando dichos datos asociados a eventos de red, activos y/o pasivos, de las conexiones realizadas entre los dispositivos móviles de la pluralidad de usuarios con unas antenas de una red de la operadora móvil; y una unidad de computación que incluye una memoria y al menos un procesador.

El procesador está adaptado y configurado para caracterizar una zona geográfica mediante la ejecución de las siguientes etapas: calcular una serie de parámetros de la pluralidad de usuarios utilizando dichos datos accedidos, comprendiendo el cálculo de la serie de parámetros: el cálculo de un parámetro de estancia, el cálculo de unos puntos de interés de cada uno de la pluralidad de usuarios, y la obtención de datos de navegación web de los dispositivos móviles de la pluralidad de usuarios en base a la obtención del tráfico de red de cada dispositivo móvil dentro de la red; determinar un perfil de caracterización de la zona geográfica mediante el cálculo de un perfil sociodemográfico, incluyendo género, franja de edad y/o nivel de renta, de unos usuarios residentes, tanto temporales como permanentes, en dicha zona geográfica utilizando dichos datos asociados a eventos de red, activos y/o pasivos; la asignación de un peso estadístico a cada usuario residente utilizando información de un primer conjunto de datos relativa al censo de la zona geográfica para usuarios residentes nacionales e información obtenida de fuentes externas para usuarios residentes internacionales, combinar los pesos estadísticos asignados, y extrapolar a la población general; y la agregación de la información extrapolada por microsegmentos en base a una ubicación de la zona geográfica y a la franja de edad, género y nivel de renta de los usuarios residentes.

Otras realizaciones de la invención que se desvelan en el presente documento incluyen también productos de programas de ordenador o informáticos para realizar las etapas y operaciones del método propuesto en el primer aspecto de la invención. Más particularmente, un producto de programa de ordenador es una realización que tiene un medio legible por ordenador que incluye instrucciones de programa informático codificadas en el mismo que cuando se ejecutan en al menos un procesador de un sistema informático producen al procesador realizar las operaciones indicadas en el presente documento como realizaciones de la invención.

En algunos ejemplos de realización, el género de los usuarios residentes se obtiene mediante la realización de un filtrado de un segundo conjunto de datos que incluye información de un identificador único del dispositivo móvil de cada usuario residente y unos parámetros asociados a los puntos de interés calculados y del primer conjunto de datos para un periodo de tiempo de observación y para el ámbito nacional; y la realización de un muestreado, con o sin reemplazamiento, de los datos filtrados.

En algunos ejemplos de realización, el nivel de renta se obtiene mediante: la identificación de unos usuarios residentes con comportamiento anómalo mediante la ejecución de un algoritmo de aprendizaje automático sobre el primer conjunto de datos, el segundo conjunto de datos y un tercer conjunto de datos relativo a unos prototipos de usuarios residentes cuyo nivel de renta ya ha sido identificado previamente; eliminación de los usuarios residentes con comportamiento anómalo identificados; clasificación de los usuarios residentes con comportamiento no anómalo en diferentes clústeres según su nivel de renta; asignación a los usuarios residentes con comportamiento anómalo de un nivel de renta por defecto de la zona geográfica; y combinación de los clústeres de los usuarios residentes con comportamiento no anómalo con los datos del nivel de renta por defecto de los usuarios residentes con comportamiento anómalo.

En algunos ejemplos de realización, la determinación del perfil de caracterización de la zona geográfica comprende, además, el cálculo del comportamiento de los usuarios residentes mediante la realización de las siguientes etapas: el cálculo de un grupo de variables relacionadas con la movilidad diaria de los usuarios residentes en base a la determinación de cuándo y dónde se ha realizado una pernoctación utilizando un cuarto conjunto de datos que incluye el identif icador único del dispositivo móvil de cada usuario residente y unos parámetros asociados al parámetro de estancia calculado y unos parámetros configurables que indican unas horas donde debe estar un evento de red para ser considerado una pernoctación; el cálculo de un grupo de variables relacionadas con viajes de los usuarios residentes en base al cálculo de al menos dos de: la identificación del recorrido del viaje de los usuarios residentes utilizando, al menos, el segundo conjunto de datos, un quinto conjunto de datos que incluye información de las pernoctaciones dentro del territorio nacional, y un sexto conjunto de datos relativos a itinerancia, la identificación de unos destinos frecuentes de los usuarios residentes utilizando el cuarto conjunto de datos y el segundo conjunto de datos, la identificación de excursiones realizadas por los usuarios residentes utilizando, al menos, el segundo conjunto de datos, el cuarto conjunto de datos, el quinto conjunto de datos e información de los destinos frecuentes identificados; y el cálculo de un grupo de variables relacionadas con la navegación web de los usuarios residentes en base a la determinación de un índice de interés medio por categoría de navegación utilizando un séptimo conjunto de datos que incluye el identificador único del dispositivo móvil de cada usuario residente, un periodo de tiempo asociado a la navegación web, una categoría de la navegación web y el tiempo total de la navegación web, y a la determinación de un índice de interés individual, por usuario residente y categoría, dividiendo la navegación web de un usuario residente concreto entre el índice de interés medio determinado.

En algunos ejemplos de realización, también se utilizan una o más fuentes de información comprendiendo variables relativas a la conectividad, incluyendo el acceso al transporte público, metro, y/o autobús; variables relativas a los hogares, incluyendo tamaño medio de los hogares, composición, y/o número de hogares; y/o variables relativas a la urbanidad, incluyendo tipología de las viviendas en base a su antigüedad, tamaño y tipo de instalaciones; tipología del área en función de si es residencial, comercial/ocio u oficinas.

En algunos ejemplos de realización, el cálculo del parámetro de estancia se realiza mediante la agregación de un determinado número continuo de eventos de red en la ubicación geográfica determinada, teniendo dicho número continuo de eventos de red una duración mínima preestablecida.

En algunos ejemplos de realización, el cálculo de los puntos de interés comprende la ejecución de unos modelos de aprendizaje automático sobre los parámetros de estancia calculados.

En algunos ejemplos de realización, los puntos de interés calculados incluyen al menos la identificación del lugar de residencia y de trabajo de los usuarios.

Según la presente invención, los eventos de red activos comprenden Registros Detallados de Llamadas (CDRs), incluyendo llamadas telefónicas realizadas por los dispositivos móviles, y Registros Detallados Extendidos (XDR), incluyendo información de navegación web de los dispositivos móviles.

En algunos ejemplos de realización, los eventos de red pasivos comprenden información referente al encendido, recuperación de cobertura, cambio de celda y/o cambio de red de los dispositivos móviles.

En algunos ejemplos de realización, el cálculo del parámetro de estancia comprende, además, detectar y eliminar unos eventos de parpadeo/intermitencia entre las antenas de red.

En algunos ejemplos de realización, los microsegmentos comprenden al menos masculino y femenino para género; de 18 a 29, de 30 a 39, de 40 a 49, de 50 a 59, de 60 a 59 y mayores o ¡guales a 70 para la franja de edad; y baja, media, media-alta y alta para el nivel de renta.

Por tanto, la presente invención permite perfilar una determinada ubicación geográfica (ej., una sección censal) en base a un perfil sociodemográfico de sus residentes, y (opcionalmente) complementando dicha información con datos de movilidad y navegación web de los usuarios y también con fuentes de datos externos abiertos. Esto permite responder a distintas preguntas de negocio como por ejemplo saber cómo son las determinadas personas de un área geográfica de cara a planificar actividades de temáticas concretas o abrir un determinado tipo de comercio. Estos datos también sirven como variables adicionales para entrenar modelos propios o para modelos analíticos de terceros. Para este último caso, se pueden cruzar mediante los microsegmentos con sus propios datos de cara a entrenar sus propios algoritmos.

Breve descripción de los dibujos Las anteriores y otras características y ventajas se comprenderán más plenamente a partir de la siguiente descripción detallada de unos ejemplos de realización, meramente ilustrativa y no limitativa, con referencia a los dibujos que la acompañan, en los que:

La Fig. 1 ¡lustra esquemáticamente el flujo del método para caracterización de zonas geográficas, según un ejemplo de realización de la presente invención.

La Fig. 2 es un esquema visual del posicionamiento de un usuario con el modelo probabilístico, donde los parámetros de conectividad con las antenas, junto con la información de qué antenas dan cobertura a un evento, determina la probabilidad de estar en una micro celda u otra.

La Fig. 3 ¡lustra esquemáticamente el flujo del método para caracterización de zonas geográficas, según otro ejemplo de realización de la presente invención.

La Fig. 4 muestra un ejemplo de uso de fuentes externas de datos abiertos para caracterizar un área, junto con los datos de perfilado basados en la MNO. Para este caso se muestra el uso de los datos del Instituto Nacional de Estadística, datos de OpenStreetMap, y datos de las distintas oficinas de Catastro de España: la oficina nacional, la de Navarra, la de Álava, la de Bizkaia y la de Gipuzkoa.

Descripción detallada de la invención y de unos ejemplos de realización

En la Fig. 1 se muestra un ejemplo del método para caracterización de zonas geográficas en base al comportamiento y perfil de sus residentes.

El área geográfica caracterizada puede ser de distinto tamaño (desde un grid determinado del territorio, como por ejemplo 250x250m, hasta todo el territorio del país). A modo de ejemplo, la presente invención se referirá a una caracterización a nivel de sección censal.

Según la presente invención, el comportamiento de los residentes se puede caracterizar con distintos tipos de variables. Particularmente, tal y como se ¡lustra en la Fig. 1 , el comportamiento se va a caracterizar en función de variables relacionadas con el perfil sociodemográfico de los usuarios. Opcionalmente, en otros ejemplos de realización, tal y como se ¡lustra en la Fig. 3, el comportamiento también se puede caracterizar tomando en consideración variables relacionadas con la movilidad diaria de los usuarios, con variables relacionadas con sus viajes turísticos, y variables relacionadas con su navegación web. Con ello, a modo general, la presente invención se encarga de extraer distintos tipos de variables que caracterizan a los usuarios para, con ello, extrapolar esa información a la población general (no sólo la de la cuota de una determinada operadora móvil), y agregar dicha información por microsegmentos, para poder ser cruzada con otras bases de datos. Asimismo, la presente invención caracteriza una sección censal con la información extrapolada y agregada en base a los distintos grupos de variables ya mencionados. Adicionalmente, y de manera opcional, se puede completar el perfilado de dicha sección censal con datos externos (por ejemplo, datos de las oficinas nacionales de estadística, datos de catastro, etc.). En la presente invención se muestra, a modo de ejemplo, este proceso de incorporación de datos externos a través del uso de distintas bases de datos públicas. Con esto, se pueden especificar ámbitos temporales (periodos de tiempo) y ámbitos geográficos (áreas determinadas) para generar el perfilado diario de las localizaciones contenidas.

La presente invención usa datos procedentes de una operadora móvil (MNO, Mobile Network Operator). Estos datos se generan mediante los eventos de las conexiones que realizan los dispositivos móviles a las antenas de red (BTS, Base Transceiver Station). Este tipo de eventos pueden clasificarse entre eventos activos o pasivos.

Dentro de los eventos activos se recoge información como los CDR (Call Detail Record), que incluyen eventos como las llamadas que realiza un dispositivo. En estos casos se tiene información del dispositivo que realiza la llamada, la antena (o antenas) a la que conecta, el timestamp del evento y el dispositivo que recibe la llamada, así como de la antena a la que se conecta ese último dispositivo. Por otro lado, otro tipo de eventos activos son los denominados XDR (extended Detail Record), que incluyen información como la navegación web de un dispositivo. A diferencia de los eventos anteriores, en este caso no se dispone de información de un dispositivo receptor, sino únicamente de la información del dispositivo que realiza el evento, la antena a la que se conecta, y su timestamp. Junto con ello, se dispone de información sobre dónde está navegando el dispositivo (por ejemplo, qué web o aplicación usa). Una definición formal de este tipo de eventos aparece en Pappalardo, L, et al. (2021 ). “Evaluation of home detection algorithms on mobile phone data using individual-level ground truth. EPJ data science”, 10(1), 29.

Junto con los eventos activos, la presente invención recoge información de los eventos pasivos que genera un dispositivo en la red, en gran parte enmarcados dentro de lo que se denomina MSD (Mobile Signalling Data). Este tipo de eventos se generan de manera continua por un dispositivo, y en muchos casos no dependen de que el usuario lleve a cabo una acción activamente para ello (a diferencia del conjunto de datos anterior). Ente estos datos aparecen eventos como los cell handovers (cuando un dispositivo se mueve del área de cobertura de una celda al área de cobertura de otra), o el encendido de un teléfono o recuperación de cobertura.

La siguiente tabla muestra un resumen de eventos dentro de las dos categorías mencionadas previamente.

Tabla " . Clasificación de los distintos tipos de eventos de red, según si éstos son activos o pasivos

En algunos ejemplos de realización, los datos que se reciben de la red son previamente anonimizados, de manera que se garantice el cumplimiento de las normativas de privacidad pertinentes.

Como se ha comentado previamente, los eventos de red que genera un dispositivo se recogen a nivel de antena. Es decir, que no se conoce la ubicación exacta del dispositivo, sino que se conoce la antena (o antenas) a la que se conecta, junto con parámetros específicos de la conexión en sí misma (como, por ejemplo, la potencia de la señal). Por este motivo, existen en la literatura distintas técnicas que, en base a esta información, buscan ubicar el dispositivo en un lugar geográfico determinado en base a esta información. Por ejemplo, una de estas aproximaciones es la que se conoce como Voronoi Tesselation, con la que las que se determina un área de cobertura alrededor de las antenas, de manera que el dispositivo se ubicaría dentro del área de la antena en concreto que le da servicio.

Aunque la presente invención es agnóstica a cómo se lleva a cabo la ubicación geográfica de un dispositivo en función de la información de conexión a las antenas, en algunos ejemplos de realización se usará como base la información proporcionada por un modelo probabilístico con el que se genera una distribución de probabilidad transversal y otra longitudinal en base a la información a priori de datos de la conexión del dispositivo a la antena (por ejemplo, la potencia de señal o tipo de antena), así como otros datos a priori relacionados con la cartografía de las localizaciones (por ejemplo, tipo de terreno, población, edificios...). Con ello, se realiza un micro grid (por ejemplo, de 250x250) del espacio, y a cada una de sus celdas se le asigna una probabilidad de que el dispositivo se encuentre en ella. Si hay varias celdas que dan cobertura a un dispositivo cuando este genera un evento, se usa la información de todas ellas para asignar las probabilidades a las celdas del grid. La Fig. 2 muestra un ejemplo para el área de cobertura de una antena para un evento concreto de un dispositivo.

Una vez que se tienen las ubicaciones de los distintos eventos, la presente invención agrega los eventos continuos para generar lo que se denomina un parámetro de estancia o dwell. Un dwell será un número determinado de eventos continuos en los que, además, se tiene una duración mínima concreta. De esta manera, se usan para representar estancias de usuarios en determinadas áreas. En el proceso de generación de estos dwells también se dispone de distintas reglar para detectar y eliminar los eventos de parpadeo/intermitencia (o flickering) entre antenas (de manera que no se consideran estancias de un usuario en un área determinada si esos eventos son debidos al fenómeno de parpadeo/intermitencia entre antenas).

Sobre los dwells, la presente invención puede usar modelos de aprendizaje automático para agrupamiento (clustering) geoespacial, de manera que se pueda encontrar de manera no supervisada patrones habituales de movilidad de los usuarios. Estos dan lugar a los puntos de interés (POIs), en los que se puede identificar los lugares donde reside/trabaja un usuario, entre otros.

En un ejemplo de realización, el primer paso en el proceso de identificación del tipo de POI consiste en identificar el lugar de residencia de los usuarios en base a la información de cada uno de ellos. Existen dentro de la literatura distintos estudios de cómo utilizar datos de una

MNO para detectar el lugar de residencia de un usuario mediante el uso de HDA (Home Detecion Algorithms) (por ejemplo, Pappalardo, L., et al. (2021 ). “Evaluation of home detection algorithms on mobile phone data using individual-level ground truth. EPJ data science”, 10(1 ), 29). La presente invención es agnóstica a esto, si bien, se va a usar una aproximación bayesiana similar a la descrita en Tennekes, M., & Gootzen, Y. A. (2021 ). “A Bayesian approach to location estimation of mobile devices from mobile network operator data” donde se parte de la distribución de probabilidad de que un usuario esté en una determinada zona en base a la información de las antenas que cubren los eventos de conectividad del usuario, y, usando la información de los dwells descritos previamente, agregando los que ocurren en un entorno cercano, junto con la información de las horas de los eventos, la caracterización geográfica de la zona usando información de fuentes externas, y la frecuencia de eventos de un usuario en un área, se determina la sección censal que corresponde al lugar de residencia de ese usuario.

Un proceso análogo se lleva a cabo para determinar el lugar de trabajo del usuario. Los POIs que corresponden a lugar de residencia o de trabajo, se clasifican por defecto como “otros”. Esto es así porque los POIs que principalmente interesa conocer de manera explícita son los POIs de lugar de residencia y de trabajo, ya que son los más habituales dentro de la movilidad de un usuario.

Adicionalmente a los datos de movilidad descritos previamente, la presente invención también recoge la información de la navegación web. Estos datos pueden incluir, por ejemplo, una categorization de las webs o aplicaciones a las que accede el dispositivo, junto con información sobre la marca y modelo de dicho dispositivo. Esta información, de modo análogo al resto de fuentes ya comentadas, se obtiene del tráfico del dispositivo dentro de la red. De esta manera, se identifican los dominios o aplicaciones a las que accede un dispositivo concreto, y posteriormente se caracterizan en distintas categorías de navegación. Estos datos, recogidos a nivel de dispositivo, preferiblemente también son anonimizados antes de ser recibidos por el sistema propuesto, al igual que ocurre con el resto de fuentes de datos recibidos de la red.

Utilizando la información descrita previamente, la presente invención aplica un proceso para, primero, perfilar a los usuarios y, posteriormente, perfilar con ello una zona geográfica en función de los usuarios que se encuentran en ella. La presente invención se centra en perfilar una zona geográfica en base a los usuarios que residen en ella. No obstante, el proceso sería análogo para perfilar también la zona geográfica en base a los usuarios que acceden a ella (para, por ejemplo, trabajar o hacer turismo).

Según el ejemplo de realización de la Fig. 1 , desde el sistema o plataforma propuesta se tiene la información de los dwells, POIs y la navegación web y se calculan diferentes tipos de variables para caracterizar el comportamiento de los usuarios para finalmente poder determinar el perfil de caracterización de la zona geográfica. Dentro del proceso que describe la figura, aparece la generación de la información del perfil sociodemográfico (que se usa para construir luego los microsegmentos) junto con las variables que se usan para caracterizar el perfil de una zona geográfica en concreto.

La obtención del perfil sociodemográfico para la creación de los microsegmentos se lleva a cabo con distintos modelos estadísticos y/o de aprendizaje automático o Machine Learning (ML). Estos modelos usan como datos de entrada en parte algunas de las variables que luego se usarán para hacer las agregaciones para obtener el perfilado de la zona geográfica, junto con otras variables que actualmente no se incluyen en el perfilado de la zona geográfica (aunque se podrían incluir desde el punto de vista técnico).

En un ejemplo de realización particular, el perfil de caracterización de la zona geográfica se obtiene implementando los siguientes algoritmos:

- Algoritmo para la inferencia del género:

En el caso de que existan usuarios nacionales de los que se desconoce el género, se aplica un modelo estadístico sobre ellos para poder inferirlo, teniendo en cuenta información externa, como es la distribución por género en el área donde reside el usuario. Adicionalmente, se podrían utilizar datos del comportamiento del usuario.

Este algoritmo está descrito en CALCULO_GENERO. Recibe como entrada la tabla de la base de usuarios (o segundo conjunto de datos) y la tabla de información del censo (o primer conjunto de datos), además del año-mes para el que se quiere hacer el cálculo, y el código de identificación del país nacional (‘es’ para España). Esto es así ya que la base de usuarios contiene también información de usuarios internacionales, pero este proceso, al estar basado en la información del censo, sólo es aplicable para los nacionales.

De la tabla table userbase;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• location-home; ubicación del ROI Home, usando el mismo nivel de granularidad que en el location id.

• gender: género del usuario, que es nulo cuando es desconocido.

• yearmon; año-mes (YYYYmm) asociado a esos POIs

• country_code; código del país de origen.

De la tabla table census;

• location Jd: lugar de referencia del censo

• genderj: población en esa área del género i

• gender_k: población en esa área del género k.

• year: Año del censo

Con ello, se lleva a cabo un muestreo sin remplazamiento (aunque es también posible hacerlo con reemplazamiento). Tras filtrar las tablas iniciales para el periodo de observación y para el ámbito nacional, se recorren las distintas zonas geográficas para hacer una inferencia del género para los usuarios que tienen su lugar de residencia en ellas (asumiendo que residen donde están censados). Después, para cada usuario sin género dentro de esa sección, se realiza un muestreo aleatorio para obtener su género, y al ser sin reemplazamiento, se ajustan las probabilidades en base a la población total del censo por género y a la base de datos de la MNO. Si hay alguna localización donde se tuviese el 100% de la población dentro de los datos de la MNO (o incluso superior si se estima que la población al es mayor que la censada), se darían unas probabilidades genéricas en caso de que aún tuviesen usuarios sin género. En el caso de que se conociesen todos los géneros dentro los usuarios de una localización, no se haría nada.

Los valores de género finales inferidos se añadirían a la base de datos de los usuarios ble_userbase_filled) .

Algoritmo para la inferencia de la franja de edad:

Otro paso del proceso es la predicción de las franjas de edad de los usuarios usando un modelo supervisado de ML. En este caso, se dispone de un ground truth tie edades reales de los usuarios, que se usarán para inferir la edad del resto de la planta para los que la edad es desconocida. Los usuarios con los que se trabaja son siempre mayores de 18 años.

El problema se plantea como un problema de clasificación supervisada multiclase, usando el algoritmo de ML LightGBM (aunque se podrían usar otros algoritmos de ML supervisado).

El motivo por el que se usa LightGBM es porque la distribución de usuarios por franja de edad no es homogénea, y este modelo es robusto de cara a hacer predicciones con esta problemática.

El proceso de entrenamiento del modelo se describe en ENTRENAMIENTO_MODELO, donde se reciben las variables de entrada por usuario, los datos de su edad real, y adicionalmente, se recibe información sobre la distribución de edad de los usuarios en la MNO.

Esto es un detalle importante, ya que al estar entrenado en los datos de la MNO y tratar de predecir la edad de los usuarios de la planta, se fuerza a que el modelo tenga un sesgo en función del conocimiento a priori de la distribución global de la edad de los clientes de la MNO.

Para incluir esta información se hace un resampling de los datos de entrenamiento para reflejar esta casuística. El resampling se puede hacer con técnicas de oversampling (como

SMOTE) o de undersampling (como ClusterCentroids). 5

La función de coste que busca minimizar el modelo se describe a continuación: donde Q es la matriz de la predicción de las franjas de edad por usuario con el modelo de ML en base a las variables de entrada que modelan el comportamiento de ese usuario X f .

Este modelo se entrenará buscando minimizar la función de coste L, que refleja la entropía cruzada, con Q las predicciones, P los valores reales, K el número de clases (franjas de edad) y N el número de usuarios.

Algoritmo para la inferencia del nivel de renta:

En esta sección se describe el proceso de inferencia del nivel de renta de los usuarios en base a los datos de la MNO. El proceso aparece en INFERENCIA_NIVEL_RENTA, donde se recibe la tabla de variables de entrada que modela el comportamiento de los usuarios, junto con la tabla de información del censo con el nivel de renta de cada localización, a tabla de la base de datos de los usuarios, y una tabla de prototipos (o tercer conjunto de datos), donde se recogen usuarios concretos que tienen ya identificado el nivel de renta en base a un análisis experto a priori. Junto con ello, se tienen los parámetros para el modelo de detección de anomalías, y el número de niveles de renta (n_grupos).

De la tabla table userbase;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• locationjiome; ubicación del ROI Home, usando el mismo nivel de granularidad que en el locationjd (para usuarios nacionales).

• yearmon; año-mes (YYYYmm) asociado a esos POIs

• country_code; código del país de origen.

De la tabla table census;

• location Jd: lugar de referenda del censo

• nivel renta: nivel de renta en esa localización.

Year: Año del censo De la tabla table _prototipos;

• userid: identificador único (hasheado) del dispositivo asociado a un usuario nivel renta: nivel de renta de ese usuario.

Tras los filtros iniciales, el proceso identifica de manera no supervisada aquellos usuarios que tienen un comportamiento anómalo (en lo que respecta a las variables de entrada) y que, por lo tanto, no deberían incluirse en el modelo de clustering posterior. Esta detección de anomalías se hace con el algoritmo de ML no supervisado IsolationForest, aunque se podrían usar otras alternativas. Tras quitar estos usuarios, se aplica un modelo de clustering usando el algoritmo K-Means (aunque se podrían usar otros), donde se especifica previamente el número de clústers (tantos como niveles de renta). Tras asignar cada usuario a un clúster, se aplica la función mapeoGrupos donde, en función de los usuarios preidentificados con el nivel de renta, se identifica cada uno de los clústers con un nivel de renta específico.

Después de esto, para los usuarios con comportamiento anómalo, se les asigna por defecto el valor de renta de la zona de su lugar de residencia, que proporciona la información censal.

El último paso consiste en la evaluación de los resultados, donde se ve un valor de métrica de clustering (como el BIC), junto con una comparativa de las distribuciones por nivel de renta de los grupos inferidos desde el modelo de clustering frente a la distribución en base a los datos censales. Esta comparativa se puede hacer a nivel de todo el territorio nacional, o a algún nivel de agrupación geográfica intermedia.

Finalmente, se combinan la tabla proveniente del modelo de clustering con la tabla de los usuarios anómalos para tener el nivel de renta de toda la planta.

Extrapolación de los usuarios:

Debido a que los datos de la MNO solo recogen información de una parte de la población total (según su cuota de mercado), es necesario elevarlos al total de la población para que reflejen la información general. Existen distintas aproximaciones para realizar este proceso de extrapolación, como por ejemplo el uso de algoritmos de ML descritos en la solicitud

EP3839917.

Para la presente invención, la extrapolación se hace a nivel de usuario individual, asignándole un peso estadístico en función de la penetración en el mercado de la MNO en el área de residencia de dicho usuario. A modo general, el algoritmo usará dos tipos de fuentes: la del censo (para extrapolar los usuarios nacionales) y la de fuentes de información externa, por ejemplo, encuestas turísticas (para extrapolar los usuarios internacionales). Este algoritmo se describe a continuación. En primer lugar, se describen las tablas de datos de entrada. Estas tablas son las referentes a los datos de censo y a las encuestas de turismo extranjero.

De la tabla table userbase filled;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• location_home; ubicación del POI Home, usando el mismo nivel de granularidad que en el locationjd (para usuarios nacionales).

• gender: género del usuario.

• ageband: franja de edad del usuario.

• yearmon; año-mes (YYYYmm) asociado a esos POIs

• country_code; código del país de origen. De la tabla table census;

• location Jd: lugar de referencia del censo

• gender: categoría de género.

• ageband: categoría de edad.

• population: población censada para las combinaciones de categorías previas.

• year: año del censo.

De la tabla table tourism surv.

• country_code: país de origen de los turistas.

• yearmon; año-mes (YYYYmm) asociado a esos datos.

• population: total de visitantes en función de las combinaciones de categorías anteriores

Con esto, el proceso EXTRAPOLACION lleva a cabo el cálculo de los pesos, que se realiza por un lado para usuarios nacionales y por otro para internacionales. Para los nacionales, se itera por la lista de referencia de combinaciones de ubicaciones-género-franjas de edad. En caso de que la userbase tenga usuarios dentro de esa combinación, el cociente de la población censada entre la de los datos de la MNO da el valor del peso estadístico. Si no se tienen usuarios para una localización concreta (checkAIICombinations), la extrapolación se hace en vez de con el nivel geográfico que se está usando con uno superior para todas las localizaciones afectadas. Por ejemplo, si no se tienen población de la MNO en una sección censal, se extrapola con la población a nivel de distrito para todas las secciones censales del mismo distrito que la sección censal sin población. Si no se tienen usuarios de la MNO datos para todas las combinaciones de genero-edad en una localización, en vez de extrapolar con toda la combinación de las categorías, se extrapola para esa ubicación sólo con la población total de la localización. Para el caso de los internacionales, el proceso es análogo, pero usando fuentes de información externas, por ejemplo, encuestas de turismo, y considerando los datos del país de residencia.

Para las dos extrapolaciones el peso de los usuarios es redondeado a un número entero, y este peso no puede ser menor que 1 . Una vez que se va obteniendo el peso estadístico para nacionales/internacionales, esta información se combina para generar la nueva userbase.

Asimismo, particularmente, los microsegmentos comprenden las siguientes categorías:

1) Genero: o Femenino o Masculino

2) Edad: o De 18 a 29 o De 30 a 39 o De 40 a 49 o De 50 a 59 o De 60 a 69 o >=70

3) Nivel de Renta o Bajo o Medio o Medio Alto o Alto

En la Fig. 3, se muestra otro ejemplo de realización del método propuesto. En este caso, el método, además del perfil sociodemográfico explicado anteriormente, también calcula una serie de variables relacionadas con la movilidad diaria, viajes e intereses web de los usuarios. Las variables relacionadas con la movilidad diaria recogen aspectos de cómo es la movilidad en el día a día de los usuarios (por ejemplo, cuántos desplazamientos realizan por la noche). Por otro lado, las variables de viajes hacen referencia a aspectos turísticos, como cuántos viajes internacionales hace un usuario o cómo son los viajes de largos. Por último, las variables relacionadas con los intereses web hacen referencia a la navegación de los usuarios (por ejemplo, qué tipos de webs/aplicaciones consulta más un usuario).

A continuación, se describen los diferentes algoritmos/procesos utilizados para tal fin:

- Algoritmo para identificar pernoctaciones:

En primera instancia, se determina cuándo y dónde se ha realizado una pernoctación por parte de un usuario. Esto se calcula con el algoritmo denominado proceso pernoctaciones. Este algoritmo recibe la tabla de datos tablejnput (o cuarto conjunto de datos), junto con unos parámetros configurables que indican unas horas donde debe estar un evento para ser considerado una pernoctación (time_interval_start y time_interval_end). Así, habrá pernoctaciones si el último evento del día está después de time_interval_start o si el primer evento del día siguiente está antes de timejnterval-end. El último parámetro de entrada es min _pernocta_time que especifica la duración mínima que deben tener los dwells para ser considerados pernoctaciones.

A nivel intuitivo, el algoritmo ve los últimos eventos del día/primeros del día siguiente para cada usuario de cara a saber, primero, si estos podrían ser pernoctaciones, y segundo, si estos eventos corresponden a un mismo dwell fraccionado en días distintos, pero que corresponde a un mismo evento de pernoctación. Es importante analizar el primer evento del día siguiente ya que podría ocurrir que la pernoctación de un día como tal no quede reflejada en el último evento de ese día, sino que aparezca reflejada en los eventos de madrugada del usuario, que ya aparecerían dentro de los datos del día siguiente.

Se asume por tanto un patrón de pernoctaciones homogéneo para todos los usuarios, aunque en determinados casos individuales puede ser distinto. En cualquier caso, la presente invención podría usar otro criterio para inferir las pernoctaciones, que tenga en cuenta el patrón habitual de los usuarios individuales, de cara a saber si tienden a realizar las pernoctaciones en una franja del día o en otra. De esta manera, se podría aplicar este algoritmo a modo general, y para casos donde las pernoctaciones suelan ser en otras franjas, al no haber ya la problemática de la continuidad entre días, se miraría simplemente que el dwell cayese en la franja particular de ese usuario y que superase una duración determinada.

La tabla de datos de entrada, tablejnput, particularmente incluye los siguientes campos:

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• date_tiV. fecha del dwell

• start_dt. timestamp con el inicio del dwell

• end_dt; timestamp con el final del dwell

• locationjd: ubicación única del dwell(por ejemplo, el código de una sección censal. Se pueden usar otros niveles de granularidades).

Con ello, en el punto 1), el algoritmo obtiene la ubicación inicio (first_start_dt_t1), y fin (first_end_dt_t1) del primer dwell del día siguiente, almacenando esa información como columnas adicionales dentro de la tabla de entrada tablejnput para luego filtrar y quedarse con un único registro por día y usuario con la función getLastEvent, correspondiendo al último evento del día.

Posteriormente, para cada combinación de usuario (userid), y fecha (date_dt), extrae la información del último dwell del día Uocationjd, start_dt, endt_dt) junto con la del primer dwell del día siguiente (first_location_id_t1 , first_start_dt_t1 , first_end_dt_t1). Con ello, en 2), se obtienen 4 identificadores que representan si la última ubicación del día coincide con la primera del día siguiente (flag_same_location), si el último dwell del día está dentro del intervalo predefinido (flag_pernocta_t0), si el inicio del primer evento del día siguiente está dentro del intervalo (flag_start_dt_t1), y si el final del primer dwell del día siguiente está dentro del intervalo (flag_end_dt_t1). Sólo en el caso de que, al menos, el dwell último del día/primero del día siguiente esté en el intervalo de pernoctaciones, se considerará que hay información suficiente de un usuario para calcular su pernoctación. Esto es así porque puede ocurrir que el último evento del día de un usuario no corresponda a una pernoctación (por ejemplo, cuando un usuario hace un viaje internacional, desaparecería de la red, pero ese último evento no sería una pernoctación).

Tras ello, en 3), se obtiene el lugar de pernoctación locationjd _pernocta, que corresponderá a la ubicación del último dwell del día si este está en el intervalo de pernoctación, o a la ubicación del primero del día siguiente si no ha habido pernoctación en el último dwell pero si en el primero del día siguiente.

En 4) se calcula el inicio de la pernoctación pernocta_start_dt, que será o bien el inicio del dwell último del día si este está en el intervalo de pernoctación, o un valor de referencia arbitrario si sólo ha habido pernoctación con el primer dwell del día siguiente.

En 5) se calcula el fin de la pernoctación pernocta_end_dt. Si el dwell es continuista (misma ubicación en el último dwell del día/primero del día siguiente) y el final del dwell primero del día siguiente está en el intervalo de pernoctación, entonces se toma ese valor como final del dwell. Independientemente de si el dwell es continuista, pero si el primer evento del día siguiente comienza dentro del intervalo de pernoctación, entonces ese valor es el final del dwell. Cuando el último dwell es una pernoctación, pero el primero del día siguiente no lo es, entonces se extiende el dwell de la pernoctación hasta el final del día. Cuando sólo es una pernoctación el primer dwell del día siguiente, o bien acaba cuando acaba este dwell (si ese final está dentro del intervalo de pernoctación) o bien se da como final del dwell el valor de su inicio. 5

- Algoritmo para identificar viajes:

La identificación y cálculo de la duración de un viaje, por ejemplo, internacional, no es trivial cuando se trabaja con datos de una MNO. La fuente de datos que identifica cuándo un dispositivo nacional se encuentra en otro país se hace mediante los datos de outbound roaming, y estos sólo indican el día y el país (o los países) donde se ha detectado a ese dispositivo. La detección de la duración de un viaje internacional pasa por la previa identificación del viaje que realiza un usuario, entendiendo todo el flujo desde que sale de su lugar de residencia hasta que retorna a él. En relación a esto, se define como viaje un desplazamiento realizado por un usuario en el que hay una pernoctación en el lugar de destino.

La presente invención proporciona un algoritmo para identificar todo el recorrido del viaje de un usuario, independientemente de que tenga etapas nacionales y etapas internacionales. Este algoritmo se especifica en la función CALCULO_VIAJES, que recibe como entrada la tabla de las pernoctaciones dentro de territorio nacional (calculadas en el punto anterior, table_pernocta o quinto conjunto de datos), la tabla con los datos de outbound roaming (table_outroaming o sexto conjunto de datos), y una tabla denominada table_userbase o segundo conjunto de datos que contiene la ubicación del lugar de residencia de cada usuario, junto con el yearmon (año-mes) en el que se ha calculado ese POI Casa/ lugar de residencia (Home) (un mismo usuario puede variar su lugar de residencia de un mes a otro). También se puede recibir el identificador ISO (country_code) del país nacional (“es” para España), junto con un offset para ver el máximo de días sin señal que se podrían considerar para un usuario dentro de un mismo viaje (offset_days). De la tabla table _pernocta se usarían los campos:

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• date_tiV. fecha de la pernoctación

• locationjd: ubicación única de la pernoctación (por ejemplo, el código de una sección censal. Se pueden usar otros niveles de granularidades).

De la tabla table_outroaming;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• date_tit; fecha del evento

• country_code_destiny código ISO normalizado del país de destino

De la tabla table userbase;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• locationjiome; ubicación del POI Home, usando el mismo nivel de granularidad que en el locationjd.

• yearmon; año-mes (YYYYmm) asociado a ese POI Home

• country_code; código del país de origen.

Con ello, el primer paso es preprocesar table_outroaming. Podría ocurrir que un mismo usuario genere eventos un mismo día en distintos países (por ejemplo, haciendo escala, o cruzando varias fronteras al ir al país de destino). Como sólo se sabe el día en que se le detecta (y no la hora), con la función chooseOne se elegirá un único día para cada país. El criterio (cuando haya varios países en un día) será que cuando un usuario haya estado generando varios días seguidos eventos de roaming (sin pasar por su país de origen), se elija como país de pernoctación aquél que aparece tanto en el día c/como en el día d+1. De esta manera, si, por ejemplo, se detecta a un usuario el día d en Andorra y en Francia, y el d+1 en Francia (y el día d no ha habido pernoctación en España), se elige como país de destino Francia.

Tras esto, se elimina de table_outroaming aquellos usuarios-días en los que haya habido una pernoctación en territorio nacional, asumiendo así que no son viajes lo que ha realizado al extranjero, sino excursiones. Seguidamente, se combinan las dos tablas. Se tendrá así una tabla con un locationjd que será nulo cuando el usuario esté en el extranjero, y que si no tendrá un valor identificativo dentro del territorio nacional. Análogamente, pero a la inversa, ocurrirá lo mismo con country_code_destiny.

Antes de proceder a combinar los datos con la tabla que contiene la información de los POI Home, se filtra esta segunda tabla para tener sólo usuarios nacionales (ya que en los dwells y, por tanto, en las pernoctaciones, se tiene también información de eventos de red de usuarios internacionales). Tras combinar las tablas y tener asignado el POI Home, se ordena la tabla por cada usuario-fecha, y se itera por la información de cada usuario. Con ello, se van recorriendo los distintos días, contabilizando cuáles de ellos forman parte de un mismo viaje (etapas) y cuándo se inicia un nuevo viaje. Como paso previo, se obtiene la ubicación, país y fecha de la pernoctación previa a cada evento (Jocation_id_tm1, country_code_destiny_tm 1 , date_dt_tm1 respectivamente). Así, en el momento que un usuario salga (y pernocte) fuera de su lugar de residencia se van contabilizando etapas del viaje, hasta que regresa a su lugar de residencia, momento en el que se dejan de contabilizar las etapas, se reinicia el contador, y se actualiza el identificador del viaje para el siguiente viaje. Adicionalmente, y en especial para los viajes internacionales, si la diferencia entre un día y el día de la pernoctación anterior supera un cierto umbral (implicando que todos esos días entremedias no ha habido señal del usuario), se considera que a partir de ese día ya corresponde a un viaje nuevo (algo que podría ocurrir si un usuario regresa a casa de un viaje internacional, pero no tiene encendido su dispositivo hasta que está fuera de su lugar de residencia). 5

- Algoritmo para identificar destinos frecuentes:

A continuación, se describe el algoritmo para calcular los destinos frecuentes del usuario. Este algoritmo recibe los siguientes parámetros de entrada.

De la tabla tablejnput, incluye los siguientes campos:

• userid; identificador único (hasheado) del dispositivo asociado a un usuario date dt: fecha del dwell

• yearmon; año-mes (YYYYmm) asociado a esas ubicaciones

• locationjd: ubicación única del dwell (por ejemplo, el código de una sección censal.

Se pueden usar otros niveles de granularidades).

De la tabla table userbase;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• location_home; ubicación del POI Home, usando el mismo nivel de granularidad que en el location id.

• location_work; ubicación del POI Work, usando el mismo nivel de granularidad que en el location id.

• yearmon; año-mes (YYYYmm) asociado a esos POIs

Con ello, se obtiene una tabla con los destinos únicos por día (table_destinies) . Esta tabla se combina con table_userbase para tener identificados los POI Casa/Trabajo (Home/Work). Después, se contabiliza las veces que ese destino aparece en el año-mes. No se consideran ubicaciones correspondientes al POI Home/Work dentro de los destinos frecuentes.

PROCESO CALCULO_DESTINOS_FREQ ( table_input , table_userbase ) :

- Algoritmo para identificar excursiones:

Además del concepto de viajes expresado previamente, se obtienen las excursiones que realiza un usuario en base a la información de las pernoctaciones y a la información de los dwells. Para ello se usa el algoritmo CALCULO_EXCURSIONES que recibe los datos de tablas ya calculadas previamente, tal y como se indica a continuación:

De la tabla tablejnput, incluye los siguientes campos:

• userid; identificador único (hasheado) del dispositivo asociado a un usuario date dt: fecha del dwell

• start_dt; timestamp con el inicio del dwell

• end_dt; timestamp con el final del dwell

• locationjd: ubicación única del dwell (por ejemplo, el código de una sección censal.

Se pueden usar otros niveles de granularidades).

• geometryjocationjd: geometría del área (e.j., en Well-known text representation,

WKT)

De la tabla table _pernocta se usarían los campos:

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• date_tiV fecha de la pernoctación • locationjd: ubicación única de la pernoctación (por ejemplo, el código de una sección censal. Se pueden usar otros niveles de granularidades).

De la tabla table userbase;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• locationjiome; ubicación del POI Home, usando el mismo nivel de granularidad que en el location id.

• location_work; ubicación del POI Work, usando el mismo nivel de granularidad que en el location id.

• geometry JiomeJocation: geometría del área (e.j. , en Well-known text representation, WKT)

• yearmon; año-mes (YYYYmm) asociado a esos POIs

• country_code; código del país de origen.

De la tabla table_freq_destinies;

• userid; identificador único (hasheado) del dispositivo asociado a un usuario.

• yearmon; año-mes (YYYYmm) asociado a esas ubicaciones.

• locationjd: ubicación única (por ejemplo, el código de una sección censal. Se pueden usar otros niveles de granularidades).

• freq: frecuencia (número días únicos) que el usuario ha visitado esa ubicación en ese periodo

Además de esas tablas, el algoritmo puede recibe los parámetros min_duration, min_distance y maxjreq que determinan la duración mínima, la distancia mínima a la residencia y la frecuencia máxima que se pueden considerar para que un dwell sea una excursión.

Con ello, el proceso elimina de la tabla de dwells aquellas ubicaciones que aparecen dentro de table_freq_destinies un número mínimo de veces, y las ubicaciones donde ha habido pernoctación en un día determinado. Sobre esa tabla, se aplica el filtro de tiempo mínimo del dwell, y, tras obtener los centroides de las geometrías de las ubicaciones del lugar de residencia y del lugar de destino, se obtiene la distancia entre ellos para asegurarse que supera un valor umbral. No se consideran ubicaciones correspondientes al POI Home/Work dentro de las excursiones.

- Cálculo del índice de navegación:

Con el algoritmo CALCULO_INDICES_NAVEGACION se obtiene un índice con el interés relativo de las distintas categorías de navegación web en función de la media de interés general nacional que se tiene con ellas. Como tabla de entrada se tiene table_navegacion (o séptimo conjunto de datos) con los campos:

• userid; identificador único (hasheado) del dispositivo asociado a un usuario

• yearmon; año-mes (YYYYmm)

• category: categoría de la navegación, como, por ejemplo, Alimentación o Mascotas.

• value: valor total (segundos) de navegación

El proceso obtiene primero el valor medio general de interés, y después, para cada usuario y categoría, obtiene el índice de interés dividiendo la navegación de ese usuario entre la media mensual nacional. 5

:<

:L

A modo de ejemplo se muestran distintas variables dentro de las anteriores categorías descritas:

Movilidad Diaria

1. Número total de desplazamientos realizados en un año

2. Número total de desplazamientos realizados en:

■ Días Laborables (ejemplo, de Lunes a Jueves)

■ En Fin de Semana (ejemplo, de Viernes a Domingo)

3. Número total de desplazamientos realizados en función del tramo horario, diferenciando entre:

■ Mañana

■ Tarde

■ Noche

4. Número total de desplazamientos realizados para:

■ Desplazamientos esporádicos

■ Desplazamientos habituales, diferenciando en este caso:

• Basados en el Hogar

• Basados en el Trabajo

• Otros

5. Número total de desplazamientos realizados en base a la distancia recorrida, diferenciando entre:

■ Cortos: De menos de 21 Km

■ Medios: De 21 km a 65 Km

■ Largos: A partir de 66 Km

Viajes

1. Número total de viajes por duración de los mismos

■ Hasta 3 días

■ De 4 a 6 días

■ De 7 a 15 días

■ De más de 15 días

2. Número total de viajes por frecuencia:

■ Ocasional

■ Recurrente 3. Número total de viajes por destino

■ Doméstico

■ Internacional

Intereses Web o Alimentación o Mascotas o Moda o Negocios o Carrera Profesional y Formación o Noticias o Ciencia o Propiedades Inmobiliarias o Compras o Publicidad o Comunidades Online o Religión y Espiritualidad o Deportes o Salud o Derecho y Política o Servicios de Internet o Familia y Paternidad o Sociedad o Finanzas o Hobbies e Intereses o Tecnología e Informática o Juegos o T elecomunicaciones o Viajes o Arte y Espectáculo o Automoción

El proceso descrito anteriormente da lugar a unos agregados de información por microsegmento, definidos por la ubicación, la franja de edad, el género y el nivel de renta. Gracias a estos microsegmentos, el perfilado de las ubicaciones se puede enriquecer con otras fuentes de información, cruzando los datos a través de uno o más campos de estos microsegmentos. Considerando sólo la información de la ubicación, el perfilado de la misma se puede completar con variables relativas a la conectividad (acceso al transporte público, metro, autobús...), variables relativas a los hogares (tamaño medio de los hogares, composición, número de hogares...), o variables relativas a la urbanidad (tipología de las viviendas en base a su antigüedad, tamaño y tipo de instalaciones; tipología del área en función de si es residencial, comercial/ocio u oficinas...). La Fig. 4 muestra un esquema de esta propuesta, donde se incluyen referencias a fuentes de datos abiertos para obtener las variables antes descritas en el caso de que el perfilado de la ubicación se realice en España.

La invención propuesta puede implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementa en software, las funciones pueden almacenarse en o codificarse como una o más instrucciones o código en un medio legible por ordenador.

Como se usa en el presente documento, los productos de programa de ordenador que comprenden medios legibles por ordenador incluyen todas las formas de medio legible por ordenador excepto, hasta el punto de que ese medio se considere que no son señales de propagación transitorias no establecidas.

El alcance de la presente invención está definido en las reivindicaciones adjuntas.