Як розкласти часовий ряд з кількома сезонними компонентами?


22

У мене є часовий ряд, який містить подвійні сезонні компоненти, і я хотів би розкласти серії на наступні компоненти часових рядів (тренд, сезонний компонент 1, сезонний компонент 2 та неправильний компонент). Наскільки мені відомо, процедура STL для розкладання серії в R дозволяє лише один сезонний компонент, тому я спробував розкласти серію двічі. По-перше, встановивши частоту, щоб бути першим сезонним компонентом, використовуючи наступний код:

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

Потім я розклав нерегулярний компонент розкладеного ряду ( dec_1), встановивши частоту як другу сезонну складову, таким чином, що:

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

Я не дуже впевнений у такому підході. І хотілося б знати, чи є якісь інші способи розкласти серію, яка має декілька сезонностей. Крім того, я помітив, що tbats()функція в пакеті прогнозу R дозволяє прилаштувати модель до серії з декількома сезонністю, однак вона не говорить про те, як розкласти серію з нею.


Привіт там і ласкаво просимо на сайт. Чи мають ваші два сезонні компоненти різну періодичність, наприклад, один тиждень та інший щомісяця?
Мішель

1
Розділ 14 Роб Хайндман, Келер, Орд і Снайдер "Прогнозування з допомогою експоненціального згладжування" охоплює це. У Hyndman також є пакет прогнозування в Р. Я, здається, згадую, що Hyndman розмістив на цьому сайті цю тему, але це, можливо, було в його блозі.
zbicyclist

@Michelle Привіт, дякую за відповідь. Так, два сезонні компоненти мають різну періодичність. Перший має періодичність 48 (щоденна сезонність), а другий - 336 (сезонна сезонність). Це півгодинний часовий ряд.
туз

@zbicyclist Я вважаю, що пакет прогнозування, про який ви збираєтесь, - це пакет "прогнозування", про який я згадував у початковій публікації. Я переглянув функцію tbats цього пакету, але він не говорить, як його використовувати для розкладання. Я перегляну книгу, щоб побачити, чи зможу знайти якусь подальшу ілюстрацію.
туз

2
Ось що я думав. Це було у блозі Hyndman. robjhyndman.com/papers/complex-seasonality
zbicyclist

Відповіді:


13

forecastbats()tbats()x(t)т

Дивіться http://robjhyndman.com/papers/complex-seasonality/ для формули та Hyndman et al (2008) для кращого опису моделей ETS. BATS і TBATS є розширенням ETS.

Наприклад:

fit <- bats(myTimeseries)
fit$x

У цьому випадку кожен ряд xбуде знаходитись на гармонії, що нагадує фур'є.

Є також plot.tbats()і plot.bats()функції автоматичного розкладання та перегляду компонентів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.