Fare clic per saperne di più sull'autore Maarit Widmann.
Un'applicazione completa per l'analisi delle serie temporali copre i passaggi in a Science Data ciclo dall'accesso alla trasformazione, modellazione, valutazione e distribuzione dei dati delle serie temporali. Tuttavia, per i dati delle serie temporali, le attività specifiche in questi passaggi differiscono rispetto ai dati sezionali. Ad esempio, i dati trasversali vengono raccolti come un'istantanea di un oggetto in un determinato momento, mentre i dati delle serie temporali vengono raccolti osservando lo stesso oggetto in un periodo di tempo. Gli schemi regolari nei dati delle serie temporali hanno una terminologia specifica e determinano la preelaborazione richiesta prima di passare alla modellazione delle serie temporali. Le serie temporali possono essere modellate con molti tipi di modelli, ma modelli di serie temporali specifici, come un modello ARIMA, utilizzano la struttura temporale tra le osservazioni.
In questo articolo vengono presentate le attività più comuni nel percorso di creazione di un'applicazione per serie temporali. Infine, mettiamo in pratica la teoria costruendo un'applicazione di esempio nella piattaforma di analisi.
Accesso alle serie temporali
Le serie temporali hanno varie fonti e applicazioni: dati di vendita giornalieri per la previsione della domanda, dati macroeconomici annuali per la pianificazione politica a lungo termine, dati dei sensori di un orologio intelligente per analizzare una sessione di allenamento e molto altro ancora. Tutte queste serie temporali differiscono, ad esempio, per granularità, regolarità e pulizia: possiamo essere sicuri di avere un valore del PIL per il nostro Paese per quest'anno e anche per i prossimi 10 anni, ma non possiamo garantire che il Il sensore del nostro smartwatch funziona stabilmente in qualsiasi esercizio e a qualsiasi temperatura. Potrebbe anche darsi che i dati delle serie temporali non siano disponibili a intervalli regolari, ma possano essere raccolti solo da punti di eventi casuali, come infezioni da malattie o visite spontanee dei clienti. Ciò che tutti questi tipi di dati di serie temporali hanno in comune, però, è che vengono raccolti dalla stessa fonte nel tempo.
Regolarizzazione e pulizia delle serie temporali
Una volta ottenuti i dati delle serie temporali, il passaggio successivo consiste nel renderli equamente spaziati con una granularità adeguata, continui e puliti. Le attività richieste dipendono dalla forma originale dei dati e anche dal nostro analitica scopo. Ad esempio, se stiamo pianificando la promozione di un prodotto di una settimana, potremmo essere interessati a dati più granulari rispetto a quando desideriamo ottenere una panoramica delle vendite di alcuni prodotti.
ordinamento
Le serie temporali devono essere ordinate in base al tempo. Quando partizioni i dati in set di training e test, ricorda di preservare la struttura temporale tra i record prendendo i dati dall'alto/dal basso per test/training. Se i tuoi dati contengono più di un record per timestamp, devi aggregarli in base al timestamp. Ad esempio, quando hai più ordini al giorno e sei interessato alle vendite giornaliere, devi sommare le vendite per ogni giorno. Inoltre, se sei interessato alle serie temporali con un livello di granularità diverso da quello attualmente presente nei dati (ad esempio, vendite mensili anziché giornaliere), puoi aggregare ulteriormente i dati con il livello di granularità preferito.
Valori mancanti
Se mancano alcuni timestamp, è necessario introdurli nella serie temporale in modo da renderla equispaziata. A volte i record mancanti fanno parte della dinamica delle serie temporali (ad esempio, un mercato azionario chiude di venerdì e apre di lunedì).
Quando si introducono i timestamp mancanti nei dati, ovviamente mancano i valori corrispondenti. È possibile imputare questi valori mancanti, ad esempio, tramite interpolazione lineare o valori di media mobile. Ricorda, tuttavia, che la tecnica migliore per imputare i valori mancanti dipende dalla dinamica regolare dei dati. Ad esempio, se controlli la stagionalità settimanale nei dati giornalieri e manca un valore per un sabato, il valore dell'ultimo sabato è probabilmente la sostituzione migliore. Se i valori mancanti non mancano in modo casuale, come i prezzi di chiusura del mercato azionario mancanti nei fine settimana, è possibile sostituirli con un valore fisso, che in questo caso sarebbe 0. D'altra parte, se i valori mancanti sono casuali e si verificano abbastanza nel passato, è possibile utilizzare i dati dopo il valore mancante e ignorare i dati più vecchi.
Modelli irregolari
Un buon modo per gestire le fluttuazioni rapide e i valori anomali è uniformare i dati. Possono essere utilizzate diverse tecniche, ad es media mobile ed livellamento esponenziale. Inoltre, tagliando i valori che si trovano al di fuori dei baffi di un box plot si uniformano i dati. Tieni presente che una forte stagionalità dei dati potrebbe portare a un box plot diffuso, quindi è meglio utilizzare un box plot condizionale per rilevare i valori anomali.
Tuttavia, a volte le serie temporali mostrano semplicemente un fenomeno molto irregolare! In tal caso, si può provare a rendere la serie temporale più regolare estraendone un sottoinsieme, ad esempio considerando solo le vendite di un prodotto invece delle vendite dell'intero supermercato, oppure raggruppando i dati.
Esplorare e trasformare le serie temporali
A questo punto, abbiamo i dati delle nostre serie temporali nella forma adatta per esplorarli visivamente e numericamente. I diversi grafici e statistiche rivelano modelli e relazioni temporali a lungo e breve termine nelle serie temporali che possiamo utilizzare per comprenderne meglio le dinamiche e prevederne lo sviluppo futuro.
Esplorazione visiva delle serie temporali
Il grafico di base per esplorare le serie temporali è il grafico lineare (Figura 3) che mostra una possibile direzione, fluttuazioni regolari e irregolari, valori anomali, lacune o punti di svolta nella serie temporale. Se osservi uno schema regolare nelle serie temporali, ad esempio la stagionalità annuale nelle vendite di bevande, puoi esaminare ciascun ciclo stagionale (anno) separatamente in un grafico stagionale(Figura 3). Nel grafico stagionale puoi facilmente vedere, ad esempio, se luglio è stato un mese di vendite più forte quest'anno rispetto all'anno scorso o se le vendite mensili aumentano di anno in anno.
Se sei interessato a ciò che accade durante le stagioni, ad esempio quali sono le vendite mediane nei mesi estivi e quanto e in quale direzione variano ogni mese, puoi esaminare questo tipo di dinamiche in un box plot condizionale (Figura 3). Ancora un altro grafico utile per esplorare le serie temporali è il diagramma dei ritardi (Figura 3). Il diagramma di ritardo mostra la relazione tra i valori attuali e quelli passati, ad esempio, le vendite di oggi e le vendite della settimana prima.
Scomposizione classica delle serie storiche
La scomposizione classica, ovvero la scomposizione delle serie temporali in trend, stagionalità e residui, fornisce un buon punto di riferimento per le previsioni. Si suppone che la restante parte della serie temporale, il residuo, lo sia stazionarioe può essere previsto ad esempio da un modello ARIMA. Ricordare, tuttavia, che se la serie residua non è stazionaria, potrebbero essere necessarie alcune trasformazioni aggiuntive, come la differenziazione del primo ordine o la trasformazione logaritmica della serie temporale originale.
In primo luogo, se la serie temporale mostra una direzione, un trend, è possibile eliminarne il trend, ad esempio adattando un modello di regressione ai dati o calcolando un valore di media mobile.
In secondo luogo, se la serie temporale mostra una fluttuazione regolare, ovvero una stagionalità, è possibile adattarla di conseguenza. È possibile trovare il ritardo in corrispondenza del quale si verifica la stagionalità principale nel grafico di autocorrelazione delle serie temporali. Ad esempio, se osservi un picco al ritardo 7 e disponi di dati giornalieri, i dati avranno una stagionalità settimanale. La stagionalità può essere corretta differenziando i dati nel momento in cui si verifica il picco maggiore. Se desideri modificare la seconda stagionalità nei dati, puoi farlo ripetendo la procedura per le serie temporali rettificate (differenziate).
Infine, quando hai raggiunto una serie temporale stazionaria pronta per essere modellata, ad esempio, da un modello ARIMA, puoi eseguire un controllo finale con, ad esempio, Test della Ljung-box per stazionarietà.
Modellazione e valutazione di serie temporali
Passiamo ora a modellare la parte residua della serie storica che ne contiene la dinamica irregolare. Possiamo farlo con i modelli ARIMA, machine learning modelli, reti neurali e molte varianti di essi. Spesso modelliamo la parte residua delle serie temporali con questi modelli, perché è stazionaria. Tuttavia, la scomposizione delle serie temporali non è sempre necessaria, poiché alcuni modelli, come ad esempio il modello ARIMA stagionale, funzionano anche per modellare serie temporali non stazionarie.
Di seguito raccogliamo alcune proprietà di queste diverse tecniche di modellazione, le loro somiglianze e differenze, in modo che tu possa scegliere quella migliore per il tuo caso d'uso. Ricorda inoltre che è utile addestrare più modelli e persino crearne un insieme!
Modelli ARIMA
ARIMA (Autoregressive Integrated Moving Average) è un modello di regressione lineare tra i valori attuali e quelli passati (parte AR) e anche tra gli errori di previsione attuali e passati (parte MA). Se il modello ha una parte I diversa da zero, i dati vengono differenziati per renderlo stazionario. I modelli ARIMA di base presuppongono che le serie temporali siano stazionarie e che le serie temporali stazionarie non abbiano schemi prevedibili a lungo termine. La diminuzione dell'accuratezza delle previsioni a lungo termine può essere vista nell'aumento degli intervalli di confidenza delle previsioni. Avere più dati non è sempre migliore per l'addestramento dei modelli ARIMA: set di dati di grandi dimensioni potrebbero rendere la stima dei parametri di un modello ARIMA dispendiosa in termini di tempo, oltre a esagerare la differenza tra il processo reale e il processo del modello.
Modelli di apprendimento automatico
I modelli di machine learning utilizzano i valori ritardati come colonne dei predittori e ignorano la struttura temporale tra la colonna di destinazione e le colonne dei predittori. I modelli di machine learning possono anche identificare modelli a lungo termine e punti di svolta nei dati, a condizione che nei dati di addestramento vengano forniti dati sufficienti per stabilire questi modelli. In generale, più irregolarità vengono evidenziate dai dati, più dati saranno necessari per addestrare il modello. Quando applichi un modello di machine learning, è consigliabile modellare il residuo. Altrimenti, potresti costruire un modello che è più complicato del modello di scomposizione classico, ma che in realtà non apprende nulla di nuovo oltre a quello!
Suggerimenti sulla selezione del modello
In primo luogo, alcuni fenomeni sono difficili da prevedere e in tal caso spesso ha senso optare per un modello più semplice e non investire risorse nella modellazione di qualcosa che non può essere previsto con precisione.
In secondo luogo, la performance del modello non è l’unico criterio. Se le decisioni importanti si basano sui risultati del modello, la sua interpretabilità potrebbe essere più importante di una prestazione leggermente migliore. Detto questo, una rete neurale potrebbe perdere rispetto a un semplice modello di scomposizione classica, anche se prevede leggermente migliori.
In terzo luogo, l'aggiunta di variabili esplicative al modello potrebbe migliorare l'accuratezza della previsione. Tuttavia, in un modello di questo tipo è necessario prevedere anche le variabili esplicative e la crescente complessità del modello non sempre vale la maggiore accuratezza. A volte sono sufficienti stime approssimative per supportare le decisioni: se gli importi di spedizione vengono calcolati in decine e centinaia, la domanda prevista non deve necessariamente avere una granularità maggiore.
Valutazione del modello
Dopo aver addestrato un modello, il passaggio successivo è valutarlo. Per la previsione in-sample, il set di test è il set di training stesso, quindi il processo del modello viene adattato ai dati utilizzati per il training del modello. Per le previsioni fuori campione, il set di test è successivo al set di addestramento nel tempo.
Una metrica di errore consigliata per valutare un modello di serie temporali è l'errore percentuale medio assoluto (MAPPA), poiché fornisce l'errore su scala universale, come percentuale del valore effettivo. Tuttavia, se il valore vero è zero, questa metrica non è definita, e quindi anche altre metriche di errore, come l'errore quadratico medio (RMSE), andrà bene. Ciò che spesso si consiglia, però, è di NON utilizzarlo R-squared. La metrica R-quadrato non si adatta al contesto dell'analisi delle serie temporali perché l'attenzione è rivolta alla previsione della variabilità sistematica futura della colonna di destinazione invece di modellare tutta la variabilità del passato.
Previsione e ricostruzione delle serie storiche
Ci siamo quasi! L'ultimo passo è prevedere i valori futuri e ricostruire il segnale.
Previsione dinamica
Se disponi di un modello che non è in grado di fornire previsioni accurate a lungo termine, la distribuzione dinamica spesso migliora la precisione delle previsioni fuori campione. Nella distribuzione dinamica, viene previsto un solo punto nel futuro alla volta e i dati passati vengono aggiornati in base a questo valore di previsione per generare la previsione successiva (Figura 5).
Ripristino di trend e stagionalità
Infine, se scomponiamo le serie storiche prima della previsione, dobbiamo restituire alle previsioni il trend e/o la stagionalità. Se regoliamo la stagionalità differenziando i dati, iniziamo a ricostruire il segnale aggiungendo valori nel ritardo in cui si verifica la stagionalità. Ad esempio, se avessimo dati giornalieri y in cui abbiamo applicato la differenza stagionale al ritardo 7 (stagionalità settimanale), il ripristino di questa stagionalità richiederebbe il seguente calcolo sui valori di previsione yt+1, yt+2, ..., yt+h :
where tè l'ultimo punto temporale nei dati di addestramento e h è l'orizzonte di previsione.
Per ripristinare la seconda stagionalità, ripeteremo il passaggio sopra descritto per le serie temporali ripristinate. Se volessimo ripristinare la componente di tendenza nella serie storica, applicheremmo il modello di regressione che rappresenta la tendenza alla serie storica ripristinata.
Applicazione completa delle serie temporali nella piattaforma di analisi
Infine, diamo un'occhiata a come mettere in pratica questi passaggi utilizzando la nostra piattaforma di analisi. Il flusso di lavoro Accesso alla trasformazione e alla modellazione delle serie temporali (disponibile sull'hub) nella Figura 6 mostra i passaggi dall'accesso alla pulizia, all'esplorazione visiva, alla scomposizione e alla modellazione delle serie temporali. Per alcune di queste attività, utilizziamo componenti delle serie temporali che incapsulano i flussi di lavoro come funzionalità specifiche per le serie temporali: aggregano i dati alla granularità selezionata, eseguono la scomposizione classica e altro ancora.
In questo esempio, usiamo il Campione – Ipermercato dati forniti da Quadro. Nella nostra analisi ci concentriamo sugli ordini di tutti i prodotti dal 2014 al 2017 – in totale 9994 record. Iniziamo la preelaborazione rimodellando i dati in serie temporali calcolando le vendite totali giornaliere. Ora abbiamo solo un valore al giorno, ma mancano alcuni giorni perché in questi giorni non sono stati inviati ordini. Pertanto, introduciamo questi giorni nelle serie temporali e sostituiamo i valori di vendita mancanti con un valore fisso 0. Successivamente, aggreghiamo i dati a livello mensile e consideriamo le vendite medie in ciascun mese in ulteriori analisi.
Per l'esplorazione visiva, aggreghiamo i dati anche a livello annuale e scopriamo che c'è un punto di svolta all'inizio dell'anno 2015, come mostra il grafico a destra nella Figura 7. Il grafico a linee a sinistra mostra la stagionalità annuale dei dati: ci sono due picchi regolari alla fine di ogni anno e un picco inferiore all'inizio di ogni anno. Rileviamo anche la stagionalità annuale nei dati, come mostrato dal picco maggiore in corrispondenza del ritardo 12 nel grafico ACF a sinistra. Scomponiamo la serie temporale in trend, stagionalità e residuo e questi componenti vengono mostrati nel grafico a linee al centro della Figura 7. Il grafico ACF a destra non mostra alcuna autocorrelazione significativa nelle serie residue.
Successivamente, modelliamo la serie residua delle vendite medie mensili con un modello ARIMA. Dopo la differenziazione al ritardo 12, la lunghezza della serie temporale è di 36 osservazioni. Cerchiamo il modello migliore con il componente Auto ARIMA Learner con ordine massimo 4 per le parti AR e MA e ordine massimo 1 per la parte I. Il modello più performante basato su Criterio di informazione Akaike è ARIMA (0, 1, 4) e il MAPE risultante basato sulle previsioni interne al campione è 1.153.
Infine, valutiamo l'accuratezza delle previsioni fuori campione del modello. Il flusso di lavoro Previsione e ricostruzione delle serie storiche (disponibile sull'Hub) nella Figura 8 mostra come prevedere le vendite giornaliere nel 2017 sulla base dei dati mensili negli anni dal 2014 al 2016 (24 osservazioni) e il modello vincente ARIMA (0,1,4) utilizzando l'implementazione dinamica approccio. Successivamente ricostruiamo il segnale, in questo caso riportiamo il trend e la stagionalità annuale ai valori previsti (12 valori medi mensili di vendita). Confrontiamo i valori effettivi e quelli previsti e otteniamo un MAPE di 0.336.
In breve
Le serie temporali, che si tratti di dati di sensori che mostrano il comportamento di un minuscolo oggetto nanosecondo dopo nanosecondo, di dati macroeconomici per il 20° secolo o qualcosa di intermedio, hanno tecniche di analisi specifiche che si applicano alle fasi di accesso, manipolazione e modellazione.
In questo articolo ti abbiamo presentato le nozioni di base delle tecniche di analisi per le serie temporali che ti aiutano a iniziare a lavorare con i dati delle serie temporali.
Riferimenti
[1] Chambers, John C., Satinder K. Mullick e Donald D. Smith. Come scegliere la giusta tecnica di previsione. Università di Harvard, Scuola di specializzazione in amministrazione aziendale, 1971.
[2] Hyndman, Rob J. e George Athanasopoulos. Previsione: principi e pratica. O Testi, 2018.
Fonte: https://www.dataversity.net/building-a-time-series-analysis-application/
- Assoluta
- aggiuntivo
- .
- analitica
- Applicazioni
- applicazioni
- AR
- articolo
- auto
- Nozioni di base
- Segno di riferimento
- MIGLIORE
- Bevande
- stile di vita
- Scatola
- costruire
- Costruzione
- affari
- Pulizia
- Colonna
- Uncommon
- componente
- fiducia
- paesi
- Corrente
- dati
- giorno
- Richiesta
- Mercato
- Malattia
- stime
- Evento
- Esercitare
- esplorazione
- figura
- Infine
- Nome
- in forma
- Focus
- Venerdì
- futuro
- PIL
- Generale
- George
- buono
- laurea
- Manovrabilità
- harvard
- Università di Harvard
- Come
- Tutorial
- HTTPS
- centinaia
- identificare
- Immagine
- infezioni
- informazioni
- IT
- Luglio
- grandi
- portare
- IMPARARE
- allievo
- apprendimento
- Livello
- linea
- Lunghi
- machine learning
- maggiore
- Rappresentanza
- Metrica
- modello
- modellismo
- Lunedì
- dati mensili
- mese
- cambiano
- Rete
- reti
- Neurale
- rete neurale
- reti neurali
- apre
- minimo
- ordini
- Altro
- Cartamodello
- performance
- pianificazione
- piattaforma
- predizione
- Prodotto
- Prodotti
- promozione
- record
- regressione
- Relazioni
- Risorse
- Risultati
- vendite
- Scala
- di moto
- selezionato
- senso
- Serie
- set
- Spedizione
- Un'espansione
- piccole
- smart
- Istantanea
- So
- inizia a
- iniziato
- statistica
- azione
- borsa
- presentata
- estate
- supporto
- Quadro
- Target
- test
- Le nozioni di base
- Il futuro
- tempo
- top
- Training
- Trasformazione
- universale
- Università
- APPREZZIAMO
- Orologio
- settimana
- settimanale
- Che cosa è l'
- wikipedia
- entro
- Lavora
- flusso di lavoro
- allenamento
- valore
- anno
- anni
- zero