Tengo muchas series de tiempo en este formato 1 columna en la que tengo formato de fecha (d / m / año) y muchas columnas que representan diferentes series de tiempo como aquí:
DATE TS1 TS2 TS3 ...
24/03/2003 0.00 0.00 ...
17/04/2003 -0.05 1.46
11/05/2003 0.46 -3.86
04/06/2003 -2.21 -1.08
28/06/2003 -1.18 -2.16
22/07/2003 0.00 0.23
Con R, ¿cómo puedo agrupar las series de tiempo que muestran tendencias similares?
r
time-series
clustering
daveal81
fuente
fuente
code
es muy similar a lo que quiero hacerRespuestas:
Paso 1
Realice una transformación rápida de Fourier en los datos de series temporales. Esto descompone sus datos de series temporales en componentes de frecuencia y medios y le permite utilizar variables para la agrupación que no muestran una autocorrelación pesada como muchas series temporales sin procesar.
Paso 2
Si las series temporales tienen un valor real, descarte la segunda mitad de los elementos rápidos de la transformación de Fourier porque son redundantes.
Paso 3
Separe las partes real e imaginaria de cada elemento de transformación rápida de Fourier.
Paso 4
Realice clustering basado en modelos en las partes reales e imaginarias de cada elemento de frecuencia.
Paso 5
Trace los percentiles de las series de tiempo por grupo para examinar su forma.
Alternativamente, puede omitir los componentes de CC de la transformación rápida de Fourier para evitar que sus clústeres se basen en la media y, en su lugar, en la serie definida por la transformación de Fourier, que representa la forma de la serie temporal.
También querrá calcular las amplitudes y los ángulos de fase a partir de la transformada rápida de Fourier para poder explorar la distribución de los espectros de series de tiempo dentro de los grupos. Vea esta respuesta de StackOverflow sobre cómo hacer eso para datos con valor real.
También puede trazar los percentiles de la forma de las series de tiempo por conglomerado calculando la serie de Fourier a partir de las amplitudes y los ángulos de fase (la estimación de la serie de tiempo resultante no coincidirá perfectamente con la serie de tiempo original). También puede trazar los percentiles de los datos de series temporales sin procesar por clúster. Aquí hay un ejemplo de tal trama, que surgió de un análisis armónico de datos NDVI que acabo de hacer hoy:
Finalmente, si su serie temporal no es estacionaria (es decir, cambio de media y varianza con el tiempo), puede ser más apropiado usar una transformada wavelet en lugar de una transformada de Fourier. Lo haría a costa de la información sobre frecuencias mientras obtiene información sobre la ubicación.
fuente