Który jest lepszy, stl lub rozkład?

10

Robię analizę szeregów czasowych za pomocą R. Muszę rozłożyć dane na trend, sezonowość i losowy składnik. Mam tygodniowe dane od 3 lat. Znalazłem dwie funkcje w R - stl()i decompose(). Przeczytałem, że stl()to nie jest dobre dla multiplikatywnego rozkładu. Czy ktoś może mi powiedzieć, w jakim scenariuszu można korzystać z tych funkcji?

Arushi
źródło
1
Będziesz musiał dostarczyć pewien kontekst swojego problemu, w przeciwnym razie będziemy musieli migrować do wymiany stosu lub bliskim z zaleceniem spróbować ?stli ?decompose.
AdamO,

Odpowiedzi:

4

Powiedziałbym STL. STL ma tendencję i sezonowość patrz: http://www.wessa.net/download/stl.pdf

Tylko rozkład dokonuje sezonowości, patrz dokumentacja tutaj: http://stat.ethz.ch/R-manual/R-devel/library/stats/html/decompose.html

Podczas pracy z nimi należy uwzględnić typ trendu (multiplikatywny, addytywny) i typ sezonu (multiplikatywny, addytywny). Trendy mogą również czasami mieć czynnik tłumienia.

Przez multiplikatywny rozkład zakładam, że masz na myśli trend. Prawdopodobnie nie użyjesz multiplikatywnego rozkładu, chyba że rozkładasz wykładniczą funkcję wzrostu.

ccsv
źródło
Rozkład multiplikatywny w prostym przypadku ma miejsce, gdy podstawowym modelem jest Y = trend * błąd sezonowy *. Modele multiplikatywne pojawiają się w kontekstach nie wykładniczych. Na przykład w przypadku sprzedaży masz określony poziom ruchu i określony współczynnik konwersji, a zatem składnik sezonowy zmienia się proporcjonalnie do trendu. Rozwiązanie jest tym, które opisuje Natalie.
5

Wady decomposefunkcji w R:

  1. Szacunek trendu jest niedostępny dla kilku pierwszych i ostatnich kilku obserwacji.
  2. Zakłada się, że składnik sezonowy powtarza się z roku na rok.

Wolałbym więc STL. Możliwe jest uzyskanie multiplikatywnego rozkładu, najpierw pobierając logi danych, a następnie przekształcając składniki z powrotem.

Natalie
źródło
1

STL jest bardziej zaawansowaną techniką wyodrębniania sezonowości, w tym sensie, że pozwala na zmianę sezonowości, co nie ma miejsca decompose.

Aby zrozumieć, jak działa STL:

  • algorytm szacuje każdą sezonową podserię (w sezonowości 7-dniowej oszacuje 7 podserii: seria czasu poniedziałkowego, seria czasu wtorkowego itp.),
  • następnie oszacuje lokalną sezonowość, przeprowadzając regresję lessową dla każdej podserii.

Pozwala to uchwycić różne efekty sezonowości. Jeśli nie chcesz, aby Twoja sezonowość była zmienna (innymi słowy, szacowany efekt każdej podserii pozostanie stały przez cały czas), możesz określić, że okno sezonowe będzie nieskończone lub „okresowe”. Jest to równoważne z uśrednieniem każdej podserii i równym przypisaniem wszystkich punktów (nie ma już żadnego efektu „lokalnego”). decomposejest zasadniczo taki sam, ponieważ sezonowe podskładniki pozostaną stałe przez cały czas trwania serii, co jest specjalną konfiguracją STL.

Jest to dość dobrze wyjaśnione tutaj: https://www.otexts.org/fpp/6/1 .

STL szacuje sezonowość w sposób addytywny. Jak wyjaśniono kilka stron później w poprzednim źródle, można oszacować sezonowość w multiplikatywny sposób, stosując transformację logów (lub transformację Cox-Boxa).

Tanguy
źródło