Previsione di serie storiche usando LSTM: importanza di rendere stazionarie le serie storiche


21

In questo link su Stationarity e differenziazione , è stato menzionato che modelli come ARIMA richiedono una serie temporale stazionaria per le previsioni poiché le proprietà statistiche come media, varianza, autocorrelazione ecc. Sono costanti nel tempo. Dato che gli RNN hanno una migliore capacità di apprendere relazioni non lineari ( come indicato qui: La promessa delle reti neurali ricorrenti per le previsioni sulle serie temporali ) e avere prestazioni migliori rispetto ai modelli di serie storiche tradizionali quando i dati sono grandi, è essenziale capire quanto stazionario i dati influenzerebbero i suoi risultati. Le domande di cui ho bisogno di sapere la risposta sono le seguenti:

  1. Nel caso dei modelli di previsione delle serie storiche tradizionali, la stazionarietà nei dati delle serie temporali semplifica la previsione, perché e come?

  2. Durante la creazione di un modello di previsione delle serie temporali utilizzando LSTM , è importante rendere stazionari i dati delle serie storiche ? Se è così, allora perché?

Risposte:


29

In generale, le serie temporali non sono molto diverse dagli altri problemi di apprendimento automatico: vuoi che il tuo set di test 'assomigli' al tuo set di allenamento, perché vuoi che il modello che hai imparato sul tuo set di allenamento sia ancora appropriato per il tuo set di test. Questo è l'importante concetto alla base della stazionarietà. Le serie temporali hanno l'ulteriore complessità che potrebbe esserci una struttura a lungo termine nei dati che il modello potrebbe non essere abbastanza sofisticato da apprendere. Ad esempio, quando si utilizza un ritardo autoregressivo di N, non è possibile apprendere dipendenze su intervalli più lunghi di N. Pertanto, quando si utilizzano modelli semplici come ARIMA, vogliamo che i dati siano anche localmente fissi.

  1. Come hai detto, stazionario significa solo che le statistiche del modello non cambiano nel tempo ("localmente" stazionario). I modelli ARIMA sono essenzialmente modelli di regressione in cui si utilizzano i valori N passati come input per la regressione lineare per prevedere il valore N + 1 °. (Almeno, è quello che fa la parte AR). Quando apprendi il modello, impari i coefficienti di regressione. Se si dispone di una serie temporale in cui si impara la relazione tra i punti N passati e il punto successivo e quindi si applica a una serie diversa di N punti per prevedere il valore successivo, si presuppone implicitamente che la stessa relazione valga tra N punti predittori e il seguente N + 1 ° punto che stai tentando di prevedere. Questa è stazionarietà. Se hai diviso il tuo set di allenamento in due intervalli e ti sei allenato separatamente, e ho ottenuto due modelli molto diversi: che cosa vorresti concludere da quello? Pensi che ti sentiresti sicuro nell'applicare quei modelli per prevederenuovi dati? Quale useresti? Questi problemi sorgono se i dati sono "non stazionari".

  2. La mia opinione su RNN è questa: stai ancora imparando un modello da un segmento di una serie storica e vuoi ancora applicarlo a un'altra parte della serie temporale per ottenere previsioni. Il modello apprende una rappresentazione semplificata delle serie temporali e se tale rappresentazione si applica sul set di allenamento ma non sul set di test, non funzionerà bene. Tuttavia, a differenza di ARIMA, gli RNN sono in grado di apprendere le non linearità e i nodi specializzati come i nodi LSTM sono ancora migliori in questo. In particolare, LSTM e GRU sono molto bravi nell'apprendimento delle dipendenze a lungo termine. Vedi ad esempio questo post sul blog . In effetti ciò significa che ciò che si intende per "stazionarietà" è meno fragile con le RNN, quindi è un po 'meno preoccupante. Per essere in grado di apprendere dipendenze a lungo termine, tuttavia, sono necessari MOLTI dati su cui allenarsi.

Alla fine la prova è nel budino. Ossia, esegui la validazione del modello come faresti con qualsiasi altro progetto di apprendimento automatico. Se il tuo modello prevede bene i dati di blocco, puoi sentirti un po 'sicuro nell'usarlo. Ma come qualsiasi altro progetto ML - se i tuoi dati di test sono sempre significativamente diversi dai tuoi dati di allenamento, il tuo modello non funzionerà bene.


2
Questa risposta è eccellente Ben considerato e approfondito.
StatsSorceress

1
È passato un po 'di tempo. Qualcuno ha testato questo presupposto?
compguy24
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.