Cómo funciona Clustering de serie temporal

La herramienta Clustering de serie temporal identifica las ubicaciones de un cubo de espacio-tiempo que son más similares y las divide en clústeres distintos, en los que los miembros de cada clúster tienen características de serie temporal similares. Las series temporales se pueden agrupar para que tengan valores similares a lo largo del tiempo, se mantengan proporcionales a lo largo del tiempo o muestren patrones periódicos suaves similares a lo largo del tiempo. Esta herramienta toma como entrada un cubo NetCDF de espacio-tiempo que se puede crear usando las herramientas Crear cubo de espacio-tiempo agregando puntos, Crear cubo de espacio-tiempo a partir de ubicaciones definidas o Crear cubo de espacio-tiempo a partir de capa ráster multidimensional. La herramienta genera una clase de entidad 2D que muestra cada ubicación en el cubo simbolizada por su pertenencia a un clúster, así como mensajes informativos. También se pueden usar los parámetros Tabla de salida para gráficos y Habilitar series temporales emergentes para crear gráficos que muestren series temporales representativas de cada clúster y series temporales para cada ubicación del cubo de espacio-tiempo.

Aplicaciones potenciales

  • Un analista ha creado un cubo de espacio-tiempo que representa varios años de llamadas al 112 y puede utilizar la herramienta Clustering de serie temporal con la opción Valor de Característica de interés para determinar los vecindarios con volúmenes de llamadas similares.
  • Un minorista grande podría usar esta herramienta con Perfil (Correlación) como valor de Característica de interés para buscar tiendas con patrones de compra similares. Por ejemplo, esta herramienta ayuda a los usuarios a distinguir las tiendas cuyas ventas aumentan durante la temporada de compras navideñas y disminuyen después de Navidad, de las tiendas cuyas ventas no tienen este patrón. Las tiendas con diferentes patrones de ventas merecen una mayor investigación. Esta información también se puede usar para ayudar a la empresa a predecir la demanda y garantizar que las tiendas dispongan de las existencias suficientes.
  • Un meteorólogo podría usar esta herramienta con Perfil (Fourier) como valor de Característica de interés para agrupar lugares según sus fluctuaciones de temperaturas a lo largo del tiempo y por lo similar que sea el grado de su fluctuación.
  • Los demógrafos pueden utilizar esta herramienta para evaluar los países con patrones similares de crecimiento de población, en cuanto a valor y a perfil de las series temporales.

Salidas de la herramienta

Esta herramienta crea un número de salidas. Una clase de entidad 2D que muestra cada ubicación del Cubo de espacio-tiempo de entrada, simbolizado por su pertenencia al clúster, permite explorar cualquier patrón espacial. Aunque los algoritmo de clustering empleados en esta herramienta no tienen en cuenta ninguna relación espacial al realizar el clustering, pueden seguir existiendo patrones espaciales. Además, durante la ejecución de la herramienta se escriben mensajes en la parte inferior del panel Geoprocesamiento en los que se resumen los resultados del análisis y estadísticas de tendencia de Mann-Kendall para cada clúster. Puede acceder a los mensajes desplazándose sobre la barra de progreso, haciendo clic en el botón emergente Ventana emergente o expandiendo la sección de mensajes en el panel Geoprocesamiento. También puede acceder a los mensajes de una herramienta ejecutada anteriormente con el historial de geoprocesamiento.

Ventana de mensajes de Clustering de serie temporal

La salida predeterminada de la herramienta Clustering de serie temporal es una nueva clase de entidad de salida que contiene el campo CLUSTER_ID, que indica a qué clúster pertenece cada ubicación. Esta clase de entidad de salida se agrega al panel Contenido con un esquema de representación en pantalla a color único aplicado al campo CLUSTER_ID. El campo CENTER_REP indica qué ubicaciones del cubo de espacio-tiempo son más representativas de cada grupo (llamadas medoides de los clústeres). Este campo contendrá un valor de 1 para el medoide de cada clúster, y todas las demás ubicaciones contendrán un valor de 0.

Resultado de Clustering de serie temporal
Ejemplo del resultado de Clustering de serie temporal

Salidas de gráfico de Clustering de serie temporal

Los gráficos se generan cuando crea una Tabla de salida para gráficos. El gráfico Series temporales medias por clústeres muestra el promedio de la Variable de análisis en cada paso de tiempo para cada grupo, y el gráfico Medoides de clústeres de serie temporal muestra la serie temporal de medoides de cada clúster. Juntos, estos gráficos permiten visualizar el promedio general y las series temporales representativas desglosadas por clúster. Es semejante a resumir las categorías de un dataset univariante utilizando la media y la mediana.

Gráficos de salida de Clustering de serie temporal

También puede usar el parámetro Habilitar series temporales emergentes para crear gráficos de series temporales en los elementos emergentes de cada entidad de salida que muestra la serie temporal de la entidad y la serie temporal promedia de todas las entidades del mismo clúster. Esto permite ver cómo la serie temporal de la entidad se compara con otras entidades del mismo clúster y si está bien representada por el clúster.

Gráfico emergente de Clustering de serie temporal

Similitud entre series temporales

El objetivo del clustering es dividir las ubicaciones del cubo de espacio-tiempo en grupos donde las series temporales de ubicaciones dentro de cada grupo son más similares entre sí de los que son las series temporales de ubicaciones fuera del grupo. Sin embargo, las series temporales se componen de muchos números o valores a lo largo del tiempo, por lo que no está completamente claro lo que significa que dos series temporales sean similares. Con números individuales, una medida útil de similitud es la diferencia absoluta de su valor: la diferencia entre 10 y 13 es 3. Puede decir que 10 es más similar a 13 que a 17 porque la diferencia absoluta entre sus valores es menor. En el caso de las series temporales, sin embargo, la similitud no es tan obvia. Por ejemplo, ¿la serie temporal (5, 8, 11, 7, 6) es más similar a (4, 9, 13, 4, 9) que a (5, 11, 6, 7, 6)? Para responder una pregunta como esta, se debe poder medir la similitud o diferencia entre dos series temporales. Hay varias formas de medir la similitud y cada una depende de las características de las series temporales que se consideren importantes. La característica que elija será la característica más similar entre las ubicaciones en los mismos clústeres de salida.

El parámetro Característica de interés se usa para especificar la característica de la serie temporal que desea que sea similar dentro de cada clúster. El Clustering puede basarse en una de tres características.

Característica de valor

La opción Valor del parámetro Característica de interés es la opción más simple y se usa para agrupar series temporales que tienen valores similares a lo largo del tiempo.

Esta opción mide la similitud de las series temporales utilizando la distancia euclidiana entre los valores de las series temporales (no confundirlo con la distancia en el espacio entre las ubicaciones de las dos series temporales). Por ejemplo, la diferencia entre las series temporales (1, 5, 2, 3) y (3, 1, 3, 5) es 5. Este valor se calcula tomando la raíz cuadrada de la suma de las diferencias cuadradas de los valores a lo largo del tiempo:

SquareRoot[ (1-3)2 + (5-1)2 + (2-3)2 + (3-5)2 ] = 5

Característica de perfil (Correlación)

La opción Perfil (Correlación) del parámetro Característica de interés se utiliza para agrupar series temporales que tienden a mantenerse proporcionales entre sí y aumentan y disminuyen su valor al mismo tiempo. Por ejemplo, se puede usar esta opción para agrupar sucursales de tiendas en función de sus tasas de crecimiento. Incluso si sus valores reales son muy diferentes, las ubicaciones se agruparán si siguen patrones de crecimiento similares.

Esta opción mide la similitud de las series temporales en función de su correlación estadística a lo largo del tiempo. Por ejemplo, la serie temporal (1, 2, 3, 4, 5) tiene valores muy diferentes a la serie temporales (10, 20, 30, 40, 50), pero están perfectamente correlacionadas y su diferencia es 0. Esta diferencia entre dos series temporales se calcula restando la correlación de 1. Esto significa que las series temporales que están perfectamente correlacionadas de forma positiva (correlación = 1) tienen una diferencia de 0, las series temporales que no están correlacionadas (correlación = 0) tienen una diferencia de 1 y las series temporales que están perfectamente correlacionadas de forma negativa (correlación = -1) tienen una diferencia de 2. Todos los demás grados de correlación dan como resultado valores entre 0 y 2, con correlaciones positivas mayores que indican una mayor similitud.

Característica de perfil (Fourier)

La opción Perfil (Fourier) del parámetro Característica de interés es la opción más compleja y se usa para agrupar series temporales que tienen patrones periódicos suaves y similares en sus valores a lo largo del tiempo. En ocasiones, estos periodos se conocen como ciclos o estaciones y representan duraciones de un solo patrón que se repite en un nuevo periodo. Por ejemplo, la temperatura sigue un periodo anual constante con temperaturas más altas en verano y más bajas en invierno y esta opción podría usarse para encontrar áreas que tengan los patrones de temperatura anuales más similares.

Si lo desea, puede ignorar determinadas características de estos patrones con el parámetro Características de serie temporal que ignorar. Puede ignorar los tiempos de inicio de estos periodos para que solo se comparen las formas y duraciones de los periodos, y puede ignorar la magnitud de los valores dentro de los periodos para que solo se comparen los tiempos de inicio y las duraciones de los periodos. Si ignora ambas características, dos series temporales se considerarán similares si las duraciones de sus periodos son aproximadamente iguales, incluso si los periodos comienzan en diferentes momentos y tienen diferentes valores dentro de los periodos.

La opción Perfil (Fourier) mide la similitud entre series temporales utilizando conceptos del análisis de datos funcionales. Cada serie temporal se descompone en una secuencia de funciones básicas que representan las señales más dominantes en la serie temporal. La familia Fourier de funciones básicas utiliza funciones de seno y coseno que oscilan hacia arriba y hacia abajo en un intervalo constante para representar las series temporales. Cada función base tiene una ponderación asociada que mide la prevalencia de esa señal en particular en la serie temporal. Por ejemplo, la temperatura muestra dos funciones básicas dominantes, una oscila hacia arriba y hacia abajo y corresponde a días y noches y la otra oscila según las estaciones del año. Las funciones básicas correspondientes a otros intervalos recibirían ponderaciones más bajas porque no son frecuentes en las series temporales de temperaturas. Por ejemplo, una función básica que oscilara arriba y abajo cada 90 minutos tendría una pequeña ponderación asociada porque la temperatura no cambia naturalmente en ese intervalo. Para que esta opción sea más efectiva, las series temporales deben abarcar la duración de al menos un periodo. Por ejemplo, el periodo anual dominante de la temperatura probablemente no se capturaría si los datos solo se midieran en unos pocos meses. Para N ubicaciones en el cubo de espacio-tiempo, la herramienta utilizará funciones básicas N-2 si N es par y funciones básicas N-1 si N es impar.

La diferencia entre dos series temporales se calcula sumando las diferencias al cuadrado entre las ponderaciones de las funciones básicas asociadas de cada serie temporal. Esto significa que dos series temporales que tienen señales oscilantes dominantes similares se considerarán similares.

Clustering de serie temporal por similitud

Si bien algunas opciones son más complicadas que otras, todas las opciones del parámetro Característica de interés calculan un número único que mide la diferencia entre dos series temporales. A partir de esta definición de similitud entre series temporales, las ubicaciones del cubo de espacio-tiempo se agrupan en clústeres mediante el uso de uno de los algoritmos de clustering.

Consulte la sección Referencias adicionales a continuación para obtener detalles de los algoritmos de clustering.

Perfil de clustering (Correlación)

Si se elige la opción Perfil (Correlación) del parámetro Característica de interés, la diferencia entre cada par de ubicaciones del cubo de espacio-tiempo se calcula resumida como una matriz de disimilitud. A continuación, se muestra un ejemplo de una matriz de disimilitud para las series temporales de cuatro ubicaciones, etiquetadas L1, L2, L3 y L4. Una serie temporal se considera siempre exactamente igual a sí misma y se indica con ceros a lo largo de la diagonal de la matriz. La matriz también es simétrica porque la diferencia entre dos series temporales no depende de su orden: la diferencia entre A y B es la misma que la diferencia entre B y A. Para la matriz de disimilitud que figura a continuación, las ubicaciones L1 y L2 son más similares (indicadas por el valor 4) y las series temporales L1 y L4 son más diferentes (indicadas por el valor 13).

Matriz de disimilitud
Se muestra una matriz de disimilitud representativa para las ubicaciones de cubo de espacio-tiempo de 1 a 4. La disimilitud entre la ubicación 1 (L1) y la ubicación 3 (L3) es de 9.

A continuación, esta matriz se agrupa en clústeres usando el algoritmo de medoides k, también denominado Partición Alrededor de Medoids (PAM). Este algoritmo busca clústeres dentro de la matriz en la que los miembros de los clústeres son más similares que los miembros de otros clústeres. Este algoritmo es de naturaleza aleatoria y funciona eligiendo ubicaciones aleatorias para servir como representantes de cada clúster. Estos representantes se denominan medoides y son semejantes a la mediana de un dataset univariante. Los clústeres iniciales se crean asignando ubicaciones alternas al clúster cuyo medoide es más similar. A continuación, el algoritmo intercambia los medoides dentro de cada clúster y vuelve a evaluar la similitud dentro de los nuevos clústeres. Si los nuevos clústeres son más similares que los clústeres iniciales, los medoides se intercambian y el proceso se repite hasta que no haya intercambios que aumenten la similitud de los clústeres. Si bien los clústeres finales casi siempre tendrán una gran similitud, los clústeres pueden ser diferentes dependiendo de las ubicaciones aleatorias que se eligieron como medoides iniciales. La ejecución de la herramienta varias veces puede producir un clustering moderadamente diferente, por lo que se recomienda ejecutar la herramienta varias veces para ver los diferentes resultados de clustering posibles.

Si hay más de 10.000 ubicaciones en el cubo de espacio-tiempo, la herramienta utiliza una variante del algoritmo de medoides k denominada clustering de grandes aplicaciones (CLARA). CLARA toma una muestra aleatoria de la serie temporal y aplica el algoritmo de medoides k. Las muestras que no se han elegido en la muestra aleatoria se asignan al clúster cuyo medoide es más parecido a la serie temporal de la ubicación no muestreada. El tamaño de la muestra aleatoria es el más grande de dos valores: la raíz cuadrada del número de ubicaciones (redondeado por defecto) o 40 + 2k, donde k es el número de clústeres.

Valor de clustering y perfil (Fourier)

Si se eligen las opciones Valor o Perfil (Fourier) del parámetro Característica de interés, las ubicaciones del cubo de espacio-tiempo se agrupan en clústeres mediante el algoritmo de valor medio K. Este algoritmo es conceptualmente similar al algoritmo de medoides k, pero puede realizarse sin calcular la diferencia entre cada par de ubicaciones. En lugar de esto, empezará seleccionando ubicaciones aleatorias como representantes de cada clúster. Los clústeres iniciales se crean asignando todas las ubicaciones restantes al clúster cuyo representante es más similar a la ubicación. Entonces se calcula un nuevo representante de cada clúster promediando las series temporales de cada clúster. En el caso de Valor, este nuevo representante es el promedio de cada periodo de tiempo de cada serie temporal del clúster. En cuanto a Perfil (Fourier), este nuevo representante es el promedio de las ponderaciones de cada función básica. A diferencia de los medoides k, estos nuevos representantes generalmente no se corresponderán con ninguna ubicación individual del cubo de espacio-tiempo. Cada serie temporal se asigna de nuevo al clúster cuyo representante es más similar y se calculan nuevos representantes promedio. Este proceso se repite hasta que el algoritmo converge, lo que significa que los clústeres no cambian tras la repetición. En este punto, los clústeres serán los mismos una y otra vez si el proceso continúa. Son los clústeres que devuelve la herramienta.

Como ocurre con el algoritmo de medoides k anterior, el algoritmo de valor medio k puede ofrecer diferentes resultados de clustering dependiendo de los representantes de clúster aleatorios iniciales. Es aconsejable ejecutar la herramientas varias veces para ver los diferentes resultados de clustering posibles.

Número óptimo de clústeres

Si se deja vacío el parámetro Número de clústeres, la herramienta evalúa el número óptimo de clústeres y muestra el valor en la ventana de mensajes. Determinar el número de clústeres es uno de los aspectos más difíciles de los flujos de trabajo de clústeres y esta herramienta identifica un número óptimo al probar diferentes números de clústeres e identificar el clúster que resulte más efectivo.

La herramienta probará cada valor entre 2 y 10 números de clústeres y repetirá cada valor 10 veces usando valores iniciales aleatorios en los algoritmos de clustering. Si se utiliza Perfil (Correlación) con más de 10.000 puntos, el algoritmo CLARA se ejecutará 20 veces por cada uno de los 9 posibles números de clústeres. Para cada uno de estos 90 (o 180) resultados de clustering (10 o 20 de cada uno de los 9 posibles números de clústeres), se calcula un pseudo índice estadístico F dividiendo los errores al cuadrado del medoide global por los errores al cuadrado de los medoides de clúster, corrigiendo el uso de un mayor número de clústeres. Puede interpretarse como la relación entre la similitud entre grupos y la similitud dentro del grupo. Los valores más grandes del pseudo índice estadístico F indican que las series temporales son más similares a las series temporales representativas de su clúster que al representante de todo el dataset, lo que indica un clustering efectivo. Para obtener más información, junto con fórmulas para calcular el pseudo índice estadístico F, consulte Cómo funciona el Clustering multivariante.

Determinar la cantidad óptima de clústeres es la parte computacional más intensiva de la herramienta, por lo que se recomienda proporcionar un valor si se sabe cuántos clústeres se desean.

Recursos adicionales

Para obtener más información sobre la teoría del clustering de series temporales, consulte lo siguiente:

  • Pablo Montero, José A. Vilar (2014). TSclust: An R Package for Time Series Clustering. Journal of Statistical Software. 62(1), 1-43. URL https://www.jstatsoft.org/v62/i01/.

Para obtener más información sobre el análisis de datos funcionales, consulte lo siguiente:

  • Ramsay, J. O., Silverman, B.W. (2006). Functional Data Analysis. DOI: 10.1007/b98888

Para obtener más información sobre los medoides k, consulte:

  • Kaufman, L., and P. J. Rousseau (2009). Finding groups in data: an introduction to cluster analysis (Vol. 344). John Wiley & Sons

Para obtener más información sobre las medias k, consulte:

  • Lloyd, Stuart (1982). Least squares quantization in PCM. IEEE transactions on information theory 28.2: 129-137.
  • Arthur, David, and Sergei Vassilvitskii (2006). k-means++: The advantages of careful seeding. Stanford.