Come scomporre una serie storica con più componenti stagionali?


22

Ho una serie temporale che contiene doppi componenti stagionali e vorrei scomporre la serie nei seguenti componenti della serie temporale (tendenza, componente stagionale 1, componente stagionale 2 e componente irregolare). Per quanto ne so, la procedura STL per decomporre una serie in R consente solo un componente stagionale, quindi ho provato a decomporre la serie due volte. Innanzitutto, impostando la frequenza come prima componente stagionale utilizzando il seguente codice:

ser = ts(data, freq=48)
dec_1 = stl(ser, s.window="per")

Quindi, ho decomposto il componente irregolare della serie decomposta ( dec_1) impostando la frequenza come secondo componente stagionale, in modo che:

ser2 = ts(dec_1$time.series[,3], freq=336)
dec_2 = stl(ser2, s.window="per")

Non sono molto fiducioso con questo approccio. E vorrei sapere se ci sono altri modi per scomporre una serie che ha più stagionalità. Inoltre, ho notato che la tbats()funzione nel pacchetto di previsione R consente di adattare un modello a una serie con più stagionalità, ma non dice come scomporre una serie con essa.


Salve e benvenuti nel sito. Per i tuoi due componenti stagionali, hanno periodicità diversa, ad esempio una settimana e l'altra mensile?
Michelle,

1
Il capitolo 14 di Rob Hyndman, Koehler, Ord & Snyder "Previsioni con livellamento esponenziale" copre questo. Hyndman ha anche un pacchetto di previsioni in R. Mi sembra di ricordare che Hyndman abbia pubblicato su questo sito su questo argomento, ma potrebbe essere stato sul suo blog.
ciclista

@Michelle Ciao grazie per la risposta. Sì, i due componenti stagionali hanno periodicità diversa. Il primo ha una periodicità di 48 (stagionalità giornaliera), mentre il secondo ha una periodicità di 336 (stagionalità settimanale). È una serie temporale di mezz'ora.
asso

@zbicyclist Credo che il pacchetto di previsione di cui ti occupi sia il pacchetto "previsione" che ho citato nel post originale. Ho dato un'occhiata alla funzione tbats di questo pacchetto ma non dice come usarlo per la decomposizione. Controllerò il libro per vedere se riesco a trovare ulteriori illustrazioni.
asso,

2
Ecco a cosa stavo pensando. Era sul blog di Hyndman. robjhyndman.com/papers/complex-seasonality
zbicyclist

Risposte:


13

forecastbats()tbats()x(t)t

Vedi http://robjhyndman.com/papers/complex-seasonality/ per la formula e Hyndman et al (2008) per una migliore descrizione dei modelli ETS. BATS e TBATS sono un'estensione di ETS.

Per esempio:

fit <- bats(myTimeseries)
fit$x

In questo caso, ogni riga di xsarà su un'armonica simile a Fourier.

Ci sono anche plot.tbats()e plot.bats()funzioni per decomporre automaticamente e visualizzare i componenti.

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.