Quale metodo può essere utilizzato per rilevare la stagionalità nei dati?


56

Voglio rilevare la stagionalità nei dati che ricevo. Ci sono alcuni metodi che ho trovato come il diagramma delle sottoserie stagionali e il diagramma di autocorrelazione ma il fatto è che non capisco come leggere il grafico, qualcuno potrebbe aiutarmi? L'altra cosa è, ci sono altri metodi per rilevare la stagionalità con o senza il risultato finale nel grafico?


1
potresti includere il grafico effettivo che stai riscontrando problemi di comprensione.
Karl,

Più preferibilmente i dati originali che possono essere utilizzati per generare l'ACF "problematico".
IrishStat,


1
vedi: journals.ametsoc.org/doi/abs/10.1175/JCLI-D-10-05012.1 Qian, C., Z Wu, C Fu e D Wang, 2011: Al cambio di El Niño: una visione annuale variabile nel tempo ciclo, variabilità interannuale e stato medio. J. Climate, 24 (24), 6486–6500

Risposte:


70

Un ottimo modo per trovare la periodicità in qualsiasi serie regolare di dati è quello di ispezionarne lo spettro di potenza dopo aver rimosso qualsiasi tendenza generale . (Questo si presta bene allo screening automatizzato quando la potenza totale è normalizzata a un valore standard, come l'unità.) La rimozione preliminare della tendenza (e la differenziazione opzionale per rimuovere la correlazione seriale) è essenziale per evitare di confondere i periodi con altri comportamenti.

Lo spettro di potenza è la trasformata discreta di Fourier della funzione di autocovarianza di una versione opportunamente levigata della serie originale. Se si pensa alle serie temporali come al campionamento di una forma d'onda fisica, è possibile stimare la quantità di potenza totale dell'onda trasportata all'interno di ciascuna frequenza. Lo spettro di potenza (o periodogramma ) traccia la potenza rispetto alla frequenza. I cicli ciclici (cioè ripetitivi o stagionali) appariranno come grandi picchi situati alle loro frequenze.

Ad esempio, si consideri questa serie temporale (simulata) di residui da una misurazione giornaliera presa per un anno (365 valori).

serie di residui

I valori oscillano attorno allo senza tendenze evidenti, dimostrando che tutte le tendenze importanti sono state rimosse. La fluttuazione appare casuale: nessuna periodicità è evidente.0

Ecco un'altra trama degli stessi dati, disegnata per aiutarci a vedere possibili schemi periodici.

serie di residui, riempite fino a 0

Se sembri davvero duro, potresti essere in grado di discernere un modello rumoroso ma ripetitivo che si verifica dalle 11 alle 12 volte. Le sequenze longish di valori sopra lo zero e sotto lo zero suggeriscono almeno un po 'di autocorrelazione positiva, mostrando che questa serie non è completamente casuale.

Ecco il periodogramma, mostrato per frequenze fino a 91 (un quarto della lunghezza totale della serie). È stato costruito con una finestra di Welch e normalizzato all'area dell'unità (per l'intero periodogramma, non solo la parte mostrata qui).

periodogramma

Il potere sembra "rumore bianco" (piccole fluttuazioni casuali) più due picchi prominenti. Sono difficili da perdere, vero? Il più grande si verifica in un periodo di 12 e il più piccolo in un periodo di 52. Questo metodo ha quindi rilevato un ciclo mensile e un ciclo settimanale in questi dati. Questo è davvero tutto ciò che c'è da fare. Per automatizzare il rilevamento di cicli ("stagionalità"), basta scansionare il periodogramma (che è un elenco di valori) alla ricerca di massimi locali relativamente grandi.

È tempo di rivelare come sono stati creati questi dati.

Dati decomposti in segnale più rumore

I valori sono generati da una somma di due onde sinusoidali, una con frequenza 12 (di ampiezza quadrata 3/4) e un'altra con frequenza 52 (di ampiezza quadrata 1/4). Questi sono i picchi rilevati nel periodogramma. La loro somma è mostrata come la spessa curva nera. Iid È stato quindi aggiunto il rumore normale della varianza 2, come mostrato dalle barre grigio chiaro che si estendono dalla curva nera ai punti rossi. Questo rumore ha introdotto le oscillazioni di basso livello nella parte inferiore del periodogramma, che altrimenti sarebbe solo un piatto 0. Completamente i due terzi della variazione totale dei valori è non periodica e casuale, il che è molto rumoroso: ecco perché è così difficile distinguere la periodicità semplicemente guardando i punti. Tuttavia (in parte perché ci sono così tanti dati) trovare le frequenze con il periodogramma è facile e il risultato è chiaro.

Istruzioni e buoni consigli per il calcolo dei periodogrammi compaiono sul sito Ricette numeriche : cercare la sezione "Stima dello spettro di potenza mediante FFT". Rha un codice per la stima del periodogramma . Queste illustrazioni sono state create in Mathematica 8; il periodogramma è stato calcolato con la sua funzione "Fourier".


2
Il presupposto "dopo aver rimosso qualsiasi tendenza generale" è il tallone d'Achille in quanto potrebbero esserci molte tendenze temporali, molti cambiamenti di livello che sono stati tutti esclusi nel tuo esempio. L'idea che le serie di input siano deterministiche in natura vola di fronte al possibile presenza di strutture ARIMA stagionali e regolari. I valori una tantum insoliti non trattati distorcono qualsiasi schema di identificazione basato su periodogrammi a causa di una propensione al ribasso delle stime del periodogramma che producono non significatività.Se gli effetti settimanali e / o mensili sono cambiati ad un certo punto in passato la procedura basata sul periodogramma fallirebbe
IrishStat

@Irish Penso che il tuo commento possa in qualche modo esagerare. È più elementare cercare e trattare "valori insoliti una tantum" (noti anche come valori anomali), pertanto è opportuno menzionare solo per sottolineare che alcuni stimatori di serie temporali possono essere sensibili ai valori anomali. La "natura deterministica" travisa le idee di base: nessuno suppone che ci sia determinismo (come evidenziato dall'enorme quantità di rumore nella simulazione). La simulazione incorpora un segnale periodico definito come modello - sempre approssimativo nella realtà - solo per illustrare la connessione tra il periodogramma e la stagionalità. (Continua ...)
whuber

2
Sì, i cambiamenti nella stagionalità possono oscurare il periodogramma (e l'acf, ecc.), In particolare i cambiamenti di frequenza (improbabile) o fase (possibile). I riferimenti nel mio post forniscono una soluzione per gestirlo: raccomandano di usare una finestra mobile per la stima del periodogramma. C'è un'arte in questo, e chiaramente ci sono delle insidie, in modo che molte analisi delle serie storiche trarranno beneficio dal trattamento di esperti, come sostengono. Ma la domanda si pone se esistono "altri metodi per rilevare la stagionalità" e innegabilmente il periodogramma è un'opzione statisticamente potente, computazionalmente efficiente, facilmente interpretabile.
whuber

Nel mio mondo l'uso di seni / coseni sono "effetti deterministici" proprio come gli indicatori del mese dell'anno. L'adattamento di qualsiasi modello prestabilito limita i valori adattati a uno schema specificato dall'utente, spesso al di sotto dello standard. I dati dovrebbero essere "ascoltati" per aiutare l'analista / il software avanzato a discernere efficacemente tra input fissi e stocastici nb. Mi riferisco alle strutture di ritardo ARIMA come "driver" stocastici o adattivi poiché i valori adattati si adattano / adattano ai cambiamenti nella storia della serie. Secondo me l'utilizzo del periodogramma "sovrasta" la modellistica statistica semplice
IrishStat

2
@whuber Ripetere la stessa cosa potrebbe non essere utile. Tuttavia, potrebbe anche essere utile correggere il paragrafo sotto il periodogramma per dire che i picchi si trovano a una "frequenza di" 12 e 52 volte all'anno, e non a "periodo di". Anche correggere la trama per dire "frequenza" invece di "punto" potrebbe essere utile se pensi che non sia troppo fastidioso.
Celelibi,

19

Ecco un esempio che utilizza i dati mensili sulle richieste di disoccupazione di tronchi da una città del New Jersey (da Stata, solo perché è quello che ho analizzato in origine questi dati). Stagionalità ACF

Le altezze delle linee indicano la correlazione tra una variabile e lo sth lag di se stesso; l'area grigia ti dà la sensazione se questa correlazione è significativa (questo intervallo è solo una guida e non è il modo più affidabile per testare il significato). Se questa correlazione è alta, ci sono prove della correlazione seriale. Nota i dossi che si verificano intorno ai periodi 12, 24 e 36. Dato che si tratta di dati mensili, ciò suggerisce che la correlazione diventa più forte quando si osservano i periodi esattamente 1, 2 o 3 anni precedenti. Questa è la prova della stagionalità mensile.

Puoi testare statisticamente queste relazioni regredendo la variabile su variabili fittizie che indicano la componente di stagionalità --- qui, mese manichini. Puoi testare il significato congiunto di quei manichini per verificare la stagionalità.

Questa procedura non è del tutto corretta, poiché il test richiede che i termini di errore non siano serialmente correlati. Quindi, prima di testare questi manichini di stagionalità, dobbiamo rimuovere la correlazione seriale rimanente (in genere includendo ritardi della variabile). Potrebbero esserci impulsi, interruzioni e tutti gli altri problemi delle serie temporali che è necessario correggere anche per ottenere i risultati appropriati dal test. Non hai fatto domande su questi, quindi non entrerò nei dettagli (inoltre, ci sono molte domande sul CV su questi argomenti). (Solo per alimentare la tua curiosità, questa serie richiede i manichini del mese, un solo ritardo di se stesso e un componente di spostamento per sbarazzarsi della correlazione seriale.)


4

La stagionalità può e spesso cambia nel tempo, pertanto le misure di sintesi possono essere abbastanza inadeguate per rilevare la struttura. È necessario verificare la transitorietà dei coefficienti ARIMA e spesso i cambiamenti nei "manichini stagionali". Ad esempio, in un orizzonte di 10 anni potrebbe non esserci stato un effetto di giugno per i primi k anni, ma negli ultimi 10 anni ci sono prove di un effetto di giugno. Un semplice effetto composito di giugno potrebbe non essere significativo poiché l'effetto non è stato costante nel tempo. Allo stesso modo, anche un componente ARIMA stagionale potrebbe essere cambiato. Occorre prestare attenzione a includere i cambiamenti a livello locale e / o le tendenze del tempo locale, garantendo nel contempo che la varianza degli errori sia rimasta costante nel tempo. Non si dovrebbero valutare trasformazioni come GLS / minimi quadrati ponderati o trasformazioni di potenza come tronchi / radici quadrate, ecc. sui dati originali ma sugli errori di un modello provvisorio. Le assunzioni gaussiane non hanno nulla a che fare con i dati osservati, ma tutto a che fare con gli errori del modello. Ciò è dovuto alle basi dei test statistici che utilizzano il rapporto tra una variabile chi-quadro non centrale e una variabile chi-quadrato centrale.

Se volessi pubblicare una serie di esempi dal tuo mondo, sarei felice di fornire a te e alla lista un'analisi approfondita che porti al rilevamento della struttura stagionale.


1

La risposta di Charlie è buona, ed è da dove cominciare. Se non si desidera utilizzare i grafici ACF, è possibile creare variabili fittizie k-1 per i periodi di tempo k presenti. Quindi puoi vedere se le variabili fittizie sono significative in una regressione con le variabili fittizie (e probabilmente un termine di tendenza).

Se i dati sono trimestrali: il manichino Q2 è 1 se questo è il secondo trimestre, altrimenti 0 il manichino Q3 è 1 se questo è il terzo trimestre, altrimenti 0 il manichino Q4 è 1 se questo è il quarto trimestre, altrimenti 0 Nota il quarto 1 è il custodia base (tutti e 3 i manichini zero)

Potresti anche voler controllare la "decomposizione delle serie storiche" in Minitab - spesso chiamata "decomposizione classica". Alla fine, potresti voler usare qualcosa di più moderno, ma questo è un punto di partenza semplice.


0

Vorrei cogliere l'offerta di aiuto dell'utente di IrishStat o di chiunque altro nella mia serie di esempi del mondo reale. Sto cercando di produrre un indice stagionale basato sugli ultimi 5 anni dei prezzi dei futures sul greggio. Ho gestito per produrre una semplice media stagionale che può essere visualizzata qui .

Tuttavia, vorrei riprodurre un grafico stagionale annuale mobile (suppongo che il rollio significhi che l'inizio e la fine dell'anno hanno lo stesso valore) ed è su una scala da zero a 100 come mostrato nell'immagine qui sotto: inserisci qui la descrizione dell'immagine

Ci sono 15 anni di dati giornalieri sul livello di prezzo nel foglio di calcolo che possono essere scaricati. Esempio o qualsiasi suggerimento su come ottenere quanto sopra sarebbe molto apprezzato.


-1

"Sono un po 'nuovo di me stesso R, ma la mia comprensione della funzione ACF è che se la linea verticale supera la linea tratteggiata superiore o sotto la linea tratteggiata inferiore, c'è un po' di autoregressione (compresa la stagionalità). Prova a creare un vettore di seno


Montare seni / coseni ecc. Può essere utile per alcune serie temporali fisiche / elettriche, ma è necessario essere consapevoli di MSB, bias delle specifiche del modello.
IrishStat,

1
L'autoregressione non implica la stagionalità.
Jens,
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.