Come gestire le serie temporali che cambiano nella stagionalità o in altri schemi?


22

sfondo

Sto lavorando su una serie di dati di serie temporali di letture dei contatori di energia. La lunghezza della serie varia in base al metro - per alcuni ho diversi anni, altri solo pochi mesi, ecc. Molti mostrano una stagionalità significativa, e spesso più strati - entro il giorno, la settimana o l'anno.

Una delle cose su cui ho lavorato è il raggruppamento di queste serie storiche. Il mio lavoro è accademico per il momento, e mentre sto facendo anche altre analisi dei dati, ho un obiettivo specifico per realizzare alcuni cluster.

Ho svolto alcuni lavori iniziali in cui ho calcolato varie funzioni (percentuale utilizzata nei fine settimana rispetto al giorno della settimana, percentuale utilizzata in diversi intervalli di tempo, ecc.). Quindi sono passato a utilizzare Dynamic Time Warping (DTW) per ottenere la distanza tra le diverse serie e il clustering in base ai valori delle differenze e ho trovato diversi articoli correlati a questo.

Domanda

La stagionalità in una serie specifica cambiando causerà il mio clustering non corretto? E se è così, come posso gestirlo?

La mia preoccupazione è che le distanze ottenute da DTW possano essere fuorvianti nei casi in cui lo schema di una serie temporale è cambiato. Ciò potrebbe comportare un clustering errato.

Nel caso in cui quanto sopra non è chiaro, considerare questi esempi:

Esempio 1

Un contatore ha letture basse da mezzanotte alle 8:00, quindi le letture aumentano bruscamente per l'ora successiva e rimangono alte dalle 9:00 alle 17:00, quindi diminuiscono bruscamente nell'ora successiva e quindi rimangono basse dalle 18:00 fino a mezzanotte. Il misuratore continua questo schema in modo coerente ogni giorno per diversi mesi, ma poi passa a uno schema in cui le letture rimangono semplicemente a un livello costante durante il giorno.

Esempio 2

Un metro mostra approssimativamente la stessa quantità di energia consumata ogni mese. Dopo diversi anni, passa a un modello in cui il consumo di energia è più elevato durante i mesi estivi prima di tornare alla consueta quantità.

Indicazioni possibili

  • Mi chiedevo se posso continuare a confrontare intere serie storiche, ma dividerle e considerarle come serie separate se il modello cambia considerevolmente. Tuttavia, per fare ciò avrei bisogno di essere in grado di rilevare tali cambiamenti. Inoltre, non so se questo è un modo adatto o lavorare con i dati.
  • Ho anche considerato di dividere i dati e considerarli come molte serie temporali separate. Ad esempio, potrei considerare ogni combinazione giorno / metro come una serie separata. Tuttavia, avrei bisogno di fare lo stesso se volessi considerare i modelli settimanali / mensili / annuali. Io credo che questo dovrebbe funzionare, ma è potenzialmente molto oneroso e mi dispiacerebbe andare su questa strada se c'è un modo migliore che mi manca.

Ulteriori note

Queste sono cose che sono emerse nei commenti o cose che ho pensato a causa dei commenti, che potrebbero essere rilevanti. Li sto mettendo qui in modo che le persone non debbano leggere tutto per ottenere informazioni pertinenti.

  • Sto lavorando in Python, ma ho rpy per quei posti in cui R è più adatto. Tuttavia, non sto necessariamente cercando una risposta Python: se qualcuno ha una risposta pratica a ciò che dovrebbe essere fatto, sono felice di capire da solo i dettagli di implementazione.
  • Ho un sacco di codice "bozza" funzionante - ho fatto alcune esecuzioni DTW, ho fatto un paio di diversi tipi di clustering, ecc. Penso di aver capito in gran parte la direzione che sto prendendo e cosa Sto davvero cercando è correlato al modo in cui elaboro i miei dati prima di trovare distanze, eseguire clustering, ecc. Detto questo, sospetto che la risposta sarebbe la stessa se le distanze tra le serie sono calcolate tramite DTW o una distanza euclidea più semplice (DE).
  • Ho trovato questi articoli particolarmente istruttivi su serie temporali e DTW e possono essere utili se sono necessari alcuni retroscena sull'argomento: http://www.cs.ucr.edu/~eamonn/selected_publications.htm

+1 Molto bella domanda, ed è bello vedere così tanto entusiasmo! Penso che potresti inchiodare un po 'la tua domanda, quindi è più invitante per gli altri leggere e quindi darti una risposta.
Rubens,

@Rubens Grazie! Rielaborerò quando sarò a casa stasera, vedrò dove sarebbe utile includere qualche informazione in più su come sono arrivato a questo punto e perché. Ero preoccupato che diventasse troppo lungo, ma separerò lo sfondo e chiederò un po 'di più per evitare che diventi illeggibile.
Jo Douglass,

Potrebbe non essere una domanda "statistiche pure" ma ha bisogno di una risposta statistica pura. Farai fatica fino a quando non potrai pensarci in termini puramente statistici.
Spacedman il

@Spacedman - Accolgo con favore le risposte nel modo in cui le persone ritengono sia il modo migliore per rispondere, con l'avvertenza che potrei avere ulteriori domande se la risposta è pesante su formule o riferimenti a concetti statistici che non capisco ancora.
Jo Douglass,

Jo hai trovato la risposta giusta per la tua domanda? Sono nella stessa situazione e ho bisogno di aiuto. Grazie
LSola il

Risposte:


14

Dopo aver letto la tua domanda, sono diventato curioso dell'argomento del raggruppamento di serie temporali e della dinamica temporale (DTW) . Quindi, ho eseguito una ricerca limitata e ho trovato una comprensione di base (per me) e la seguente serie di riferimenti pertinenti IMHO (per te). Spero che lo troverai utile, ma tieni presente che ho saltato intenzionalmente i documenti di ricerca, poiché ero più interessato agli aspetti pratici dell'argomento.

risorse:


1
Alcune di queste sono risorse che ho esaminato, ad esempio ho implementato una versione modificata del lavoro nei punti 2 e 4, quindi probabilmente ora siamo sulla stessa pagina. E la stragrande maggioranza di ciò che conosco si basa su articoli o articoli di Eamonn Keogh basati su di essi. Ma ce ne sono alcuni che non avevo letto, e quello sul clustering di serie storiche di bike sharing è interessante - grazie! Non vedo nulla che risponda specificamente alla mia domanda, ma segnalalo se mi sono perso qualcosa durante la lettura.
Jo Douglass,

1
Inoltre, se lo trovi ancora interessante, vale la pena leggere i lavori di Keogh. Sono sorprendentemente facili da leggere e abbastanza pratici dato il focus sull'uso di molti set di dati e sulla fornitura di informazioni sufficienti per consentire a qualcuno di ricreare tutti gli esperimenti. Il più recente è interessante, ed è quello che stavo attraversando quando sono stato messo da parte dalla mia domanda. cs.ucr.edu/~eamonn/selected_publications.htm
Jo Douglass,

1
@JoDouglass: Prego! Non intendevo rispondere direttamente alla tua domanda (a causa della mia limitata conoscenza dell'argomento), ma speravo che potesse essere utile, il che sembra essere il caso. Grazie per i bei commenti e il riferimento: sfoglio i documenti e cercherò di avere un'idea migliore. C'è così tanto da imparare, è un po 'travolgente.
Aleksandr Blekh,

1
È travolgente, mi sono preso a calci per aver scelto questo argomento per un po '! Sento che ci sto arrivando, però - ed è stato davvero interessante da imparare. Ho un certo numero di cose in esecuzione come una sorta di versioni approssimative di ciò che devo fare, e penso che si tratti più di capire come elaborare i miei dati prima di eseguirli attraverso i miei modelli, ora. Quel link di condivisione bici è interessante per me in quanto è il primo che ho visto discutere della media delle serie storiche da quando ho letto il recente documento di Keogh di cui ho parlato.
Jo Douglass,

1
@JoDouglass: Quando ho detto "travolgente", intendevo l'intero dominio della scienza dei dati (compresi AI / ML e statistiche, in particolare). Sono ancora trovare una risorsa , che presenta un alto livello di discussione di vari approcci e / o metodi come temi , integrati in un completo , ma parsimoniosa , quadro .
Aleksandr Blekh

4

Se vuoi solo estrarre i modelli stagionali, cerca l' autocorrelazione . Se stai cercando un modello in grado di imparare modelli stagionali e fare previsioni da esso, allora Holt-Winters è un buon inizio e ARIMA sarebbe una buona cosa da seguire. Qui [pdf] è il tutorial che mi ha fatto decollare.


Il lavoro è (per ora) accademico, piuttosto che puramente pratico. Potrei fare delle previsioni molto tardi o in futuro, ma per ora sono più interessato a esplorare i dati passati. Il raggruppamento è un obiettivo in sé e per sé, così come alcune idee che voglio esplorare oltre quel punto.
Jo Douglass,

Scusa, premi invio prematuro. Ho esaminato l'autocorrelazione in una certa misura e l'ho eseguito su un sottoinsieme dei miei dati un po 'di tempo fa, ma non mi era chiaro cosa avrei potuto ricavarne. I dati sono piuttosto rumorosi. Gli schemi di stagionalità a volte sono piuttosto evidenti nella visualizzazione, ma inesatti nei loro tempi - quindi potrei essere alla ricerca di schemi simili ma non in un programma piacevole e uniforme. Mi è stato detto che l'autocorrelazione era probabilmente problematica su tali dati, ma felice di avere un'altra occhiata se ci fosse valore. Non voglio solo trovare la stagionalità, ma capire che è un obiettivo.
Jo Douglass,

Esegui quel tutorial almeno fino al 2.5 compreso. Usa R, che è particolarmente utile per l'ambiente accademico. Ti insegnerà l'autocorrelazione che suona esattamente come quello che stai cercando (non posso dire se non fosse adatto perché non sapevi cosa stavi guardando, o i dati sono in realtà troppo rumorosi). Se il problema è il rumore, il livellamento esponenziale è un modo per aiutarlo, che verrà insegnato come parte del modello holt-winters. Anche se tutto ciò non ti dà la risposta, renderà sicuramente più chiaro il tuo prossimo passo.
TheGrimmScientist il

Ho letto il tutorial, ma per lo più va su cose che già conosco. In realtà sto lavorando in Python e sono un po 'troppo avanti nelle cose per passare a R, anche se ho intenzione di prendere rpy ad un certo punto nel caso ci fossero alcune cose che non riuscivo a trovare in nessuna libreria Python. Ho riscritto la mia domanda nel caso in cui fosse utile - come ho detto, il clustering è un obiettivo in sé e per sé, non sto cercando una direzione completamente diversa da seguire. Temo che il tutorial non lo faccia ' rispondo davvero alla mia domanda.
Jo Douglass,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.