8 votos

Forma de detección de datos de series temporales

Tengo una gran colección de series de tiempo - mediciones tomadas cada 15 minutos (96 mediciones en un día) en el lapso de 1 año en diversos lugares.

He roto hasta cada una de las series de tiempo en 365 independiente más pequeño de la serie de tiempo, 1 para cada día del año. Mirando estas series de tiempo, sin duda hay muchas formas distintas para un solo día. Algunos miran sinusoidal, algunos son constantes, algunos se parecen al azar proceso estocástico, parabólica, y algunos se ven como la gripe.

Lo que me gustaría hacer es utilizar un algoritmo que puede encontrar estas formas comunes. Pensé acerca de la agrupación, y utilizando el clúster de centroides para definir formas comunes, pero quería comprobar con la comunidad, si esto es lo correcto. Hasta ahora, he mirado en la Dinámica túnel del Tiempo como una métrica, pero parece que la métrica requiere una gran cantidad de cálculo. También he encontrado

http://mox.polimi.it/it/progetti/pubblicazioni/quaderni/13-2008.pdf a partir de la SE.

He visto también Es posible hacer series de tiempo de clustering basado en la forma de la curva? pero esta pregunta fue a partir de 2010 y puede ser obsoleto.

Otra idea que tuve fue a tomar eigendecompositions de las matrices que se han formateado como:

Matriz $M_i$ es una matriz de toda la serie de tiempo observada en el día $i$. Cada fila de la matriz $M_i$ es una serie de tiempo de longitud 96. A continuación, me gustaría hacer 365 eigendecompositions, y el uso de los vectores propios como formas comunes. ¿Es esto razonable?

Gracias!

7voto

Toto Puntos 508

Yo no iría demasiado profundo en la agrupación de las series de tiempo basado en un complejo análisis de la curva, como usted tiene probablemente un montón de ruido en los datos, y usted conseguirá probablemente extraño (sin sentido) de los clusters.

Creo que una manera más fácil será para descubrir el gran patrón de los datos, lo que muy probablemente se base en las tendencias y estacionalidad (días de la semana, fines de semana, vacaciones...). Usted puede encontrar con punteo de algunas estadísticas de cada día (media, mañana tendencia, la noche de tendencia...) con el tiempo (día del año, día de la semana, día del mes...) en el eje x. Esto le dará a usted la línea de base de datos, y por lo tanto sus grupos.

Por ejemplo, en R, si usted tiene su fecha en col 1, y su media en col 2, usted puede fácilmente trazar su línea de base de los días de semana patrón:

data[,3] <- as.factor(weekdays(data[,1]))
plot(data[,3],data[,2],main='mean by Day of Week')

El siguiente paso puede ser la identificación de sus valores atípicos y comprobar si usted puede encontrar un patrones de allí.

Si prefiere trabajar en un orden inverso; ejecución automática de análisis como la que se sugiere o más Series de Tiempo de afinado como LB_Keogh o kml, esto está bien. Pero usted necesita para volver a la interpretación significativa de los resultados con la lógica anterior.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X