J'ai une série chronologique qui contient des composantes saisonnières doubles et je voudrais décomposer la série en composantes chronologiques suivantes (tendance, composante saisonnière 1, composante saisonnière 2 et composante irrégulière). Pour autant que je sache, la procédure STL de décomposition d'une série en R ne permet qu'une seule composante saisonnière, j'ai donc essayé de décomposer la série deux fois. Tout d'abord, en définissant la fréquence comme première composante saisonnière à l'aide du code suivant:
ser = ts(data, freq=48)
dec_1 = stl(ser, s.window="per")
Ensuite, j'ai décomposé la composante irrégulière de la série décomposée ( dec_1
) en définissant la fréquence comme la deuxième composante saisonnière, de sorte que:
ser2 = ts(dec_1$time.series[,3], freq=336)
dec_2 = stl(ser2, s.window="per")
Je ne suis pas très confiant avec cette approche. Et je voudrais savoir s'il existe d'autres moyens de décomposer une série qui a plusieurs saisonnalités. De plus, j'ai remarqué que la tbats()
fonction dans le package de prévisions R permet d'ajuster un modèle à une série avec plusieurs saisons, mais elle ne dit pas comment décomposer une série avec elle.
Réponses:
forecast
bats()
tbats()
Voir http://robjhyndman.com/papers/complex-seasonality/ pour les formules et Hyndman et al (2008) pour une meilleure description des modèles ETS. BATS et TBATS sont une extension d'ETS.
Par exemple:
Dans ce cas, chaque ligne de
x
sera sur une harmonique de type Fourier.Il y a aussi
plot.tbats()
etplot.bats()
fonctions pour décomposer automatiquement et afficher les composants.la source