Contexte
Je travaille sur un ensemble de données de séries chronologiques de relevés de compteurs d'énergie. La longueur de la série varie selon le mètre - pour certains j'ai plusieurs années, d'autres seulement quelques mois, etc. Beaucoup présentent une saisonnalité importante, et souvent plusieurs couches - dans la journée, la semaine ou l'année.
L'une des choses sur lesquelles j'ai travaillé est le regroupement de ces séries chronologiques. Mon travail est académique pour le moment, et pendant que je fais aussi d'autres analyses des données, j'ai un objectif spécifique pour effectuer un clustering.
J'ai fait un travail initial où j'ai calculé diverses fonctionnalités (pourcentage utilisé le week-end par rapport au jour de la semaine, pourcentage utilisé dans différents blocs de temps, etc.). J'ai ensuite étudié l'utilisation de Dynamic Time Warping (DTW) pour obtenir la distance entre différentes séries et le clustering en fonction des valeurs de différence, et j'ai trouvé plusieurs articles à ce sujet.
Question
Est-ce que la saisonnalité dans une série spécifique change, mon clustering sera incorrect? Et si oui, comment y faire face?
Ma préoccupation est que les distances obtenues par DTW pourraient être trompeuses dans les cas où le schéma d'une série chronologique a changé. Cela pourrait entraîner un clustering incorrect.
Dans le cas où ce qui précède n'est pas clair, considérez ces exemples:
Exemple 1
Un compteur a des lectures faibles de minuit à 8 heures du matin, les lectures augmentent ensuite fortement pendant l'heure suivante et restent élevées de 9 heures à 17 heures, puis diminuent fortement au cours de l'heure suivante, puis restent faibles de 18 heures à minuit. Le lecteur continue ce modèle de manière cohérente tous les jours pendant plusieurs mois, mais passe ensuite à un modèle où les lectures restent simplement à un niveau constant tout au long de la journée.
Exemple 2
Un compteur indique approximativement la même quantité d'énergie consommée chaque mois. Après plusieurs années, il passe à un modèle où la consommation d'énergie est plus élevée pendant les mois d'été avant de revenir à la quantité habituelle.
Directions possibles
- Je me suis demandé si je pouvais continuer à comparer des séries chronologiques entières, mais les séparer et les considérer comme une série distincte si le schéma change considérablement. Cependant, pour ce faire, je devrais être capable de détecter de tels changements. De plus, je ne sais tout simplement pas si c'est une façon appropriée ou de travailler avec les données.
- J'ai également envisagé de diviser les données et de les considérer comme autant de séries chronologiques distinctes. Par exemple, je pourrais considérer chaque combinaison jour / mètre comme une série distincte. Cependant, je devrais alors faire de même si je voulais considérer les modèles hebdomadaires / mensuels / annuels. Je pense que cela fonctionnerait, mais c'est potentiellement assez onéreux et je détesterais emprunter cette voie s'il y a une meilleure façon de me manquer.
Notes complémentaires
Ce sont des choses qui ont été soulevées dans les commentaires, ou des choses auxquelles j'ai pensé en raison des commentaires, qui pourraient être pertinentes. Je les mets ici pour que les gens n'aient pas à tout lire pour obtenir des informations pertinentes.
- Je travaille en Python, mais ai rpy pour les endroits où R est plus approprié. Je ne cherche pas nécessairement une réponse Python - si quelqu'un a une réponse pratique à ce qui devrait être fait, je suis moi-même heureux de découvrir les détails de l'implémentation.
- J'ai beaucoup de code "brouillon" à travailler - j'ai fait quelques exécutions DTW, j'ai fait quelques types différents de clustering, etc. Je pense que je comprends en grande partie la direction que je prends, et ce que je ' Ce que je recherche vraiment est lié à la façon dont je traite mes données avant de trouver des distances, d'exécuter un clustering, etc. Étant donné cela, je pense que la réponse serait la même si les distances entre les séries sont calculées via DTW ou une distance euclidienne (ED) plus simple.
- J'ai trouvé ces articles particulièrement informatifs sur les séries chronologiques et le DTW et ils peuvent être utiles si des informations sont nécessaires sur le sujet: http://www.cs.ucr.edu/~eamonn/selected_publications.htm
la source
Réponses:
Après avoir lu votre question, je suis devenu curieux au sujet du regroupement des séries chronologiques et du warping temporel dynamique (DTW) . Donc, j'ai effectué une recherche limitée et est venu avec une compréhension de base (pour moi) et l'ensemble suivant de références pertinentes à mon humble avis (pour vous). J'espère que vous trouverez cela utile, mais gardez à l'esprit que j'ai intentionnellement sauté des articles de recherche, car j'étais plus intéressé par les aspects pratiques du sujet.
Ressources:
la source
Si vous souhaitez simplement extraire des modèles saisonniers, alors examinez l' autocorrélation . Si vous cherchez un modèle qui peut apprendre les tendances saisonnières et en faire des prévisions, alors Holt-Winters est un bon début et ARIMA serait une bonne chose à suivre. Voici [pdf] le tutoriel qui m'a fait décoller.
la source