Come correggere gli outlier una volta rilevati per la previsione dei dati delle serie temporali?


10

Sto cercando di trovare un modo per correggere i valori anomali una volta che li trovo / li rilevo nei dati delle serie temporali. Alcuni metodi, come nnetar in R, forniscono alcuni errori per le serie temporali con valori anomali grandi / grandi. Sono già riuscito a correggere i valori mancanti, ma i valori anomali continuano a danneggiare le mie previsioni ...


cosa intendi per "correzione"?
rbatt

Sostituendo o sostituendo ... O dovrebbe essere solo sottraendo ...?
Mila,

3
I valori anomali sono "reali"? Con questo intendo dire che i valori anomali sono causati dall'incapacità del modello di prevedere eventi estremi o shock? O sono "errori" come problemi di immissione dei dati?
probabilityislogic

Risposte:


9

Nel pacchetto di previsione è ora disponibile una funzione per l'identificazione e la sostituzione dei valori anomali. (Gestisce anche i valori mancanti.) Dato che apparentemente stai già utilizzando il pacchetto di previsione, questa potrebbe essere una soluzione conveniente per te. Per esempio:

fit <- nnetar(tsclean(x))

La tsclean()funzione si adatterà a una tendenza robusta utilizzando loess (per le serie non stagionali), o tendenza robusta e componenti stagionali utilizzando STL (per le serie stagionali). I residui vengono calcolati e vengono calcolati i seguenti limiti:

U=q0.9+2(q0.9q0.1)L=q0.12(q0.9q0.1)
dove e sono rispettivamente il 10o e il 90o percentile dei residui. q 0,9q0.1q0.9

Valori erratici sono identificati come punti con residui superiori a o più piccoli di .LUL

Per le serie temporali non stagionali, i valori anomali vengono sostituiti da interpolazione lineare. Per le serie temporali stagionali, il componente stagionale dall'adattamento STL viene rimosso e le serie destagionalizzate vengono interpolate linearmente per sostituire i valori anomali, prima di riclassificare il risultato.


1
Anche la tua elaborazione qui è utile: stats.stackexchange.com/questions/1142/… (tsclean chiama tsoutliers)

4

Quando identifichi un modello ARIMA dovresti identificare simultaneamente Impulsi / Spostamenti di livello / Impulsi stagionali e / o Tendenze dell'ora locale. È possibile ottenere materiale di lettura sulle procedure di rilevamento degli interventi all'indirizzo http://www.ebay.com/ctg/Time-Series-Analysis-Univariate-and-Multivariate-Methods-David-P-Reilly-and-William-Wei-1999 - / 85697 e http://www.unc.edu/~jbhill/tsay.pdf . Potrebbe essere necessario cercare software commerciale come SAS / SPSS / AUTOBOX per ottenere risultati utili come il software libero che ho visto è desiderabile. Di passaggio ho apportato importanti miglioramenti tecnici in questo settore ad AUTOBOX.

MODIFICARE:

Un approccio ancora migliore è quello di identificare i valori anomali utilizzando il rigoroso metodo ARIMA più le procedure di rilevamento degli interventi che portano a parametri ARIMA robusti e una buona previsione. Considerare ora lo sviluppo di previsioni simulate che incorporano residui ricampionati senza effetti di impulso. In questo modo ottieni il meglio da entrambi i mondi, vale a dire un buon modello e dichiarazioni di incertezza più realistiche per le previsioni che non presuppongono che i parametri del modello stimato siano i valori della popolazione.


1

Sono d'accordo con @Aksakal. Invece di rimuovere i valori anomali, un approccio migliore sarebbe quello di utilizzare una sorta di procedura statistica per gestire i valori anomali. Ti suggerisco di autorizzare i tuoi dati. Se implementato correttamente, la vittoria può essere relativamente robusta per i valori anomali. In questa pagina: http://www.r-bloggers.com/winsorization/ , troverai i codici R per implementare la vittorizzazione. Se consideri la vittorizzazione dei tuoi dati, dovrai pensare attentamente alle code della distribuzione. Gli outlier dovrebbero essere estremamente bassi o dovrebbero essere estremamente alti o forse entrambi. Ciò influirà sul fatto che tu vinca ad esempio il 5% o il 10% e / o il 95% o il 99%.


1
La Winsorization, allo scopo di stimare una media complessiva, potrebbe avere un senso in assenza di trend o componenti stagionali nei dati, ma altrimenti minaccia di distruggere informazioni importanti.
whuber

0

Nel contesto delle previsioni, la rimozione di valori anomali è molto pericolosa. Ad esempio, stai prevedendo le vendite di un negozio di alimentari. Diciamo che c'è stata un'esplosione di gas nell'edificio vicino, che ti ha fatto chiudere il negozio per alcuni giorni. Questa è stata l'unica volta in cui il negozio è stato chiuso in 10 anni. Quindi, ottieni le serie temporali, rileva il valore anomalo, rimuovilo e prevedi. Supponevi silenziosamente che in futuro non succederà nulla del genere. In senso pratico, hai compresso la varianza osservata e le varianze del coefficiente si sono ridotte. Quindi, se mostri le fasce di confidenza per la tua previsione, saranno più strette di quanto non sarebbero state se non avessi rimosso il valore anomalo.

Certo, potresti mantenere il valore anomalo e procedere come al solito, ma questo non è neanche un buon approccio. Il motivo è che questo valore errato distorce i coefficienti.

Penso che un approccio migliore in questo caso sia consentire una distribuzione degli errori con code grasse, forse una distribuzione stabile. In questo caso il tuo outlier non distorcerà troppo i coefficienti. Saranno vicini ai coefficienti con un valore anomalo rimosso. Tuttavia, il valore anomalo verrà visualizzato nella distribuzione dell'errore, la varianza dell'errore. In sostanza, finirai con fasce di confidenza previsionale più ampie.

Le fasce di confidenza trasmettono un'informazione molto importante. Se prevedi che le vendite sarebbero di 1.000.000 di $ questo mese, ma c'è una probabilità del 5% che saranno di $ 10.000, questo avrà un impatto sulle tue decisioni in termini di spesa, gestione della liquidità ecc.


-1

L'esecuzione delle previsioni utilizzando (o meno) un modello con valori anomali rimossi dipende dalla probabilità che si verifichino valori anomali in futuro e dalla distribuzione prevista del suo effetto, se effettivamente si verifica. I dati di formazione sono sufficienti per illuminare questo ?. Un approccio bayesiano dovrebbe aiutare ...


1
Questo non è corretto la tua previsione potrebbe essere imprecisa se non ti adegui ai valori anomali, soprattutto se i valori anomali si trovano alla fine della serie.
previsioni
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.