Como decompor uma série temporal com vários componentes sazonais?

22

Tenho uma série temporal que contém componentes sazonais duplos e gostaria de decompor a série nos seguintes componentes da série temporal (tendência, componente sazonal 1, componente sazonal 2 e componente irregular). Até onde eu sei, o procedimento STL para decompor uma série em R permite apenas um componente sazonal, então tentei decompor a série duas vezes. Primeiro, definindo a frequência como o primeiro componente sazonal usando o seguinte código:

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

Em seguida, decompus o componente irregular da série decomposta ( dec_1) definindo a frequência como o segundo componente sazonal, de modo que:

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

Não estou muito confiante com essa abordagem. E eu gostaria de saber se existem outras maneiras de decompor uma série com várias sazonalidades. Além disso, notei que a tbats()função no pacote de previsão R permite ajustar um modelo a uma série com várias sazonalidades, no entanto, não diz como decompor uma série com ele.

ás
fonte
Olá e bem-vindo ao site. Para seus dois componentes sazonais, eles têm periodicidade diferente, por exemplo, um semanal e outro mensal?
24512 Michelle
1
O capítulo 14 de Rob Hyndman, Koehler, Ord & Snyder "Previsão com suavização exponencial" aborda isso. Hyndman também tem um pacote de previsão em R. Lembro-me de Hyndman ter postado neste site sobre esse tópico, mas pode ter sido em seu blog.
Zbicyclist
@ Michelle Olá, obrigado pela resposta. Sim, os dois componentes sazonais têm periodicidade diferente. O primeiro tem uma periodicidade de 48 (sazonalidade diária), enquanto o segundo tem uma periodicidade de 336 (sazonalidade semanal). É uma série temporal meia hora.
Ace
@zbicyclist Acredito que o pacote de previsão sobre o qual você está falando é o pacote de 'previsão' que mencionei no post original. Eu dei uma olhada na função tbats deste pacote, mas ele não diz como usá-lo para decompor. Vou dar uma olhada no livro para ver se consigo encontrar mais alguma ilustração.
ace
2
Aqui está o que eu estava pensando. Estava no blog de Hyndman. robjhyndman.com/papers/complex-seasonality
zbicyclist

Respostas:

13

forecastbats()tbats()x(t)t

Veja http://robjhyndman.com/papers/complex-seasonality/ para obter as fórmulas e Hyndman et al (2008) para uma melhor descrição dos modelos de ETS. BATS e TBATS são uma extensão do ETS.

Por exemplo:

fit <- bats(myTimeseries)
fit$x

Nesse caso, cada linha de xestará em harmônica do tipo fourier.

Há também plot.tbats()e plot.bats()funções para automaticamente se decompor e visualizar os componentes.

poder
fonte