Fondo
Estoy trabajando en un conjunto de datos de series temporales de lecturas de medidores de energía. La longitud de la serie varía según el metro: para algunos tengo varios años, otros solo unos pocos meses, etc. Muchos muestran una estacionalidad significativa y, a menudo, varias capas, dentro del día, semana o año.
Una de las cosas en las que he estado trabajando es la agrupación de estas series de tiempo. Mi trabajo es académico por el momento, y aunque también estoy haciendo otro análisis de los datos, tengo un objetivo específico para llevar a cabo una agrupación.
Hice un trabajo inicial donde calculé varias características (porcentaje utilizado los fines de semana frente a los días laborables, porcentaje utilizado en diferentes bloques de tiempo, etc.). Luego pasé a ver el uso de la deformación dinámica del tiempo (DTW) para obtener la distancia entre diferentes series y la agrupación en función de los valores de diferencia, y encontré varios documentos relacionados con esto.
Pregunta
¿La estacionalidad en un cambio de serie específico hará que mi agrupación sea incorrecta? Y si es así, ¿cómo lo trato?
Mi preocupación es que las distancias obtenidas por DTW podrían ser engañosas en los casos en que el patrón en una serie temporal ha cambiado. Esto podría conducir a una agrupación incorrecta.
En caso de que lo anterior no esté claro, considere estos ejemplos:
Ejemplo 1
Un medidor tiene lecturas bajas desde la medianoche hasta las 8 a.m., las lecturas aumentan bruscamente durante la siguiente hora y permanecen altas desde las 9 a.m. hasta las 5 p.m., luego disminuyen bruscamente durante la próxima hora y luego permanecen bajas desde las 6 p.m. hasta la medianoche. El medidor continúa este patrón constantemente todos los días durante varios meses, pero luego cambia a un patrón donde las lecturas simplemente se mantienen en un nivel constante durante todo el día.
Ejemplo 2
Un medidor muestra aproximadamente la misma cantidad de energía que se consume cada mes. Después de varios años, cambia a un patrón en el que el uso de energía es mayor durante los meses de verano antes de volver a la cantidad habitual.
Posibles Direcciones
- Me he preguntado si puedo seguir comparando series de tiempo completo, pero dividirlas y considerarlas como series separadas si el patrón cambia considerablemente. Sin embargo, para hacer esto necesitaría poder detectar tales cambios. Además, simplemente no sé si esta es una forma adecuada o trabajar con los datos.
- También he considerado dividir los datos y considerarlos como muchas series de tiempo separadas. Por ejemplo, podría considerar cada combinación de día / metro como una serie separada. Sin embargo, tendría que hacer lo mismo si quisiera considerar los patrones semanales / mensuales / anuales. Creo que esto funcionaría, pero es potencialmente bastante oneroso y odiaría seguir este camino si hay una mejor manera que me estoy perdiendo.
Notas adicionales
Estas son cosas que han surgido en los comentarios, o cosas que he pensado debido a los comentarios, que podrían ser relevantes. Los pongo aquí para que la gente no tenga que leer todo para obtener información relevante.
- Estoy trabajando en Python, pero tengo rpy para aquellos lugares donde R es más adecuado. Sin embargo, no estoy necesariamente buscando una respuesta de Python: si alguien tiene una respuesta práctica de lo que debe hacerse, me complace descubrir los detalles de la implementación yo mismo.
- Tengo un montón de código de "borrador" en funcionamiento: he realizado algunas ejecuciones de DTW, he realizado un par de diferentes tipos de agrupación, etc. Creo que entiendo en gran medida la dirección que estoy tomando y lo que hago. Lo que realmente busco está relacionado con la forma en que proceso mis datos antes de encontrar distancias, ejecutar agrupaciones, etc. Dado esto, sospecho que la respuesta sería la misma si las distancias entre series se calculan a través de DTW o una Distancia Euclidiana (DE) más simple.
- He encontrado estos documentos especialmente informativos sobre series temporales y DTW y pueden ser útiles si se necesitan algunos antecedentes sobre el tema: http://www.cs.ucr.edu/~eamonn/selected_publications.htm