Por Marc Bosch, consultor de IdenCity.


En este artículo presento un pequeño ejercicio de investigación con los
datos de movimientos diarios a partir de la telefonía móvil del Instituto Nacional de Estadística. Estos datos dividen el estado español en un conjunto de celdas que pueden representar un conjunto de municipios, en el caso de las poblaciones más pequeñas; un municipio o un barrio o distrito para los ayuntamientos de mayor tamaño; y para cada día estiman cuántas personas se desplazaron de una celda a todas las demás a partir de los datos obtenidos de una muestra de personas geolocalizando la posición de sus teléfonos móviles. Así pues, el INE ofrece una estimación del número de personas que se desplazaron a otra celda y permanecieron allí al menos cuatro horas. Para este experimento, he utilizado los datos correspondientes a Catalunya para la tercera semana de noviembre de 2019, que ofrecen una aproximación a la situación prepandémica, así como una capa vectorial que recoge la forma y situación de las celdas. Los datos se han tratado con el lenguaje de programación Python utilizando las siguientes librerías: pandas (tratamiento de datos en forma de tabla), geopandas (tratamiento de datos geolocalizados), scikit-learn (creación de clústeres), networkx (análisis de redes) y pysal (operaciones geoestadísticas). El resultado consiste en distintas agrupaciones de municipios según los desplazamientos diarios.

En primer lugar, unimos todas las unidades territoriales inferiores al municipio para generar un tamaño mínimo de celda equivalente al municipio sumando todos los trayectos. A continuación, se cambia el formato de la tabla para que cada línea corresponda a una celda de origen y cada columna al número de personas que se desplazan a una celda de destino. Esta tabla se une a la capa vectorial de celdas, que ya contiene la población de cada una.

Esto nos permite ver, por ejemplo, el porcentaje de la población que se desplaza diariamente a Barcelona.

 

Ilustración 1 Porcentaje de la población que se desplaza diariamente a Barcelona

Vemos, como sería esperable, que los municipios más próximos a Barcelona se desplazan más a esta ciudad y que, en la mayor parte del país, los porcentajes son muy bajos. Naturalmente, no se puede sacar conclusiones de los desplazamientos a un solo municipio e investigarlos uno a uno sería especialmente costoso y complejo.

A partir de estos datos, nos surgen dos preguntas: ¿es posible dividir Catalunya en regiones con patrones similares de comportamiento? Y, ¿Los municipios vecinos se desplazan a municipios vecinos? Para contestar a estas preguntas utilizaremos varios algoritmos de clusterización. Estos algoritmos consisten en reducir un número elevado de variables a una sola, buscando resumir las similitudes entre elementos de distintas formas.

Para responder a la primera cuestión, utilizamos un algoritmo denominado de clusterización aglomerativa. Este algoritmo se distingue por trabajar «de abajo hacia arriba» buscando, para cada unidad, la unidad vecina que más se le parezca. A esta pareja se le agrupa una tercera unidad y así sucesivamente hasta completar el número de clústeres definido anteriormente. Esto genera dos nuevas preguntas: ¿cómo definimos qué unidades son vecinas de qué otras? y ¿cuántos clústeres hay que crear?

Para saber qué unidades son vecinas entre sí, con el uso de la librería pysal, generamos una estructura de pesos «Reina» (denominados así por el movimiento de la reina del ajedrez) donde las vecinas de cada unidad son aquellas que comparten un lado o un vértice. Con esto, asignamos a cada celda una matriz que asigna un peso 0 a las unidades no vecinas y 1 a las unidades vecinas. De esta forma, cuando se agrupen las celdas, solo se agruparán con aquellas otras cuyo peso mutuo sea 1.

La pregunta sobre cuántos clústeres crear es más difícil de contestar: en general se quiere un número de clústeres lo suficientemente pequeño para que no genere un coste computacional exagerado, pero no tan pequeño que se pierda información útil. Para determinarlo, se asume que con cada clúster se reduce la distorsión de los datos a un coste en tiempo computacional. En general, se espera que haya un comportamiento de rendimientos decrecientes, y, por lo tanto, es posible determinar un ideal donde la curva haga un «codo». El problema en este caso es que la pérdida de distorsión y el aumento del coste tienen una relación lineal.

 

Ilustración 2 Distorsión de los resultados en relación al número de clústeres – Elaboración propia

Este gráfico nos muestra la relación entre la distorsión y el tiempo de cálculo entre 1 y 42 clústers (se toma 42 como valor aleatorio equivalente al número de comarcas de Catalunya, entendiendo que, de lo contrario, podrían existir un gran número de microclústeres sublocales). Esto nos debería indicar que no estamos siguiendo una estrategia del todo acertada, pero como los tiempos de computación se computan en centésimas de segundo, lo trabajaremos igualmente, con 19 clústeres.

 

Ilustración 3 Clústeres de municipios contiguos con patrones de desplazamientos similares – 19 clústeres

Los resultados son interesantes y, a su vez, demuestran los problemas a los que se enfrenta este algoritmo. Vemos clústeres claros en el Montsià, en la zona de Tortosa, en el Camp de Tarragona, en parte de la región Metropolitana de Barcelona, la Conca d’Òdena, la zona de Manresa, Osona, Lleida y sus municipios cercanos y la parte norte del Alt Empordà. Luego, vemos un gran número de outliers: Aran y Alt Pirineu, Guissona, zona de Gandesa, baja Garrotxa, Olot y Vall de’n Bas. Y, finalmente, grandes regiones poco significativas: una macroregión que agrupa prácticamente toda la provincia de Lleida y parte de la de Tarragona, junto con el Berguedà, el resto de la región Metropolitana y parte de la Catalunya Central y el resto de Comarques Gironines. Estos resultados, aunque, «tengan sentido» (se observan claramente regiones que sabemos que tienen comportamientos similares), exageran los outliers (Guissona es el ejemplo paradigmático, que recibe un gran número de personas de otros municipios, pero «exporta» pocas a su vez) y genera grandes regiones sin patrones significativos. Esto deriva del hecho que la aglomeración se hace, como se ha dicho, de abajo hacia arriba, por lo que, si un municipio no «encuentra pareja», lo deja como un outlier y finalmente agrupa el resto en grandes regiones. ¿Hay soluciones? Posiblemente, pero de momento las dejaremos estar.

Centrémonos ahora en la segunda pregunta: ¿cuáles son las subregiones más conectadas entre sí? Para hacerlo, utilizaremos técnicas de análisis de redes y una clusterización denominada «espectral», que divide una red entre los subgrupos más conectados entre sí. Así pues, creamos, una red donde cada nodo es una celda y cada arista es el número de personas que se desplazan de uno a otro. Gráficamente, es este universo incomprensible. Sin lugar a duda, los catalanes nos movemos y estamos conectados entre nosotros.

 

Ilustración 4 Representación de los movimientos diarios entre municipios de Catalunya en noviembre de 2019

¿Cómo generamos orden dentro de este caos? Como se ha dicho, agrupándolo por pequeños grupos muy conectados entre sí. El número ideal de grupos se determina buscando la agrupación que genere más variabilidad entre grupos y menos variabilidad dentro de cada grupo. Una simulación rápida nos ofrece las siguientes posibilidades: 5, 9, 14, 38 y 71. Decidimos coger 38 clústeres, que se acerca bastante al número de comarcas de Catalunya y nos permite luego, como veremos, solucionar algunos problemas del algoritmo anterior. El resultado es el siguiente.

 

 

Ilustración 5 Clústeres espectrales por conectividad entre municipios

Vemos que algunos patrones se repiten del ejemplo anterior, pero se observan más claramente las tendencias dentro de las macroregiones que no habíamos estudiado. Si conocemos el territorio, los resultados claramente tienen sentido. Si repetimos el ejercicio anterior con 38 clústeres, vemos un resultado francamente parecido.

 

 

Ilustración 6 Clústeres de municipios contiguos con patrones de desplazamientos similares – 38 clústeres

En este sentido, vemos que sigue habiendo un clúster «resto» que agrupa buena parte de Lleida y, curiosamente, el Berguedà, aunque aparecen regiones alrededor de la Ribera d’Ebre y el Priorat, por un lado, y de la zona de Tàrrega, por otro, y un nuevo ‘outlier’: Agramunt. También se observan restos del clúster «metropolitano-central», aunque ahora se distinguen regiones en el Penedès, el Garraf y l’Alt Maresme. Estadísticamente, vemos que hay una relación significativa (prueba chi2) entre la pertenencia a un clúster aglomerativo determinado y a un clúster espectral determinado. Aun así, confirmamos que nos explican más las relaciones entre municipios que los patrones de desplazamiento similares. Seguiremos investigando.