Dlaczego funkcja STL daje znaczną zmienność sezonową z danymi losowymi


11

Narysowałem następujący kod z funkcją stl (Seasonal Decomposition of Time Series by Loess):

plot(stl(ts(rnorm(144), frequency=12), s.window="periodic"))

Pokazuje znaczącą zmienność sezonową z losowymi danymi umieszczonymi powyżej w kodzie (funkcja rnorm). Odmiana sygnalizująca jest widoczna za każdym razem, gdy jest uruchamiana, chociaż wzór jest inny. Dwa takie wzory pokazano poniżej:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Jak możemy polegać na funkcji stl na niektórych danych, gdy pokazuje ona zmiany sezonowe. Czy tę sezonową zmienność należy postrzegać w świetle innych parametrów? Dzięki za wgląd.

Kod pochodzi z tej strony: Czy jest to właściwa metoda testowania sezonowości w danych dotyczących liczby samobójstw?


1
Dzieje się tak, ponieważ w losowych danych występują „wzorce”, jeśli technika dopasowania ma wystarczającą liczbę parametrów.
bill_080

3
Termin „znaczący” tutaj nie wydaje się odzwierciedlać żadnego rodzaju testu istotności.
Nick Cox,

1
Stl jest metodą nieparametryczną, opartą na danych, więc nie ma sposobu na oszacowanie obecności braku sezonowych niepewności za pomocą testu istotności.
prezenter

Odpowiedzi:


12

Rozkład Loess ma na celu wygładzenie szeregu poprzez zastosowanie średnich do danych, tak aby zapadły się w składniki, np. Trend lub sezon, które są interesujące do analizy danych. Ale ta metodologia nie ma na celu przeprowadzenia formalnego testu na obecność sezonowości .

Chociaż w twoim przykładzie stlzwracany jest wygładzony wzór okresowości sezonowej, wzór ten nie jest istotny dla wyjaśnienia dynamiki serii. Aby to zobaczyć, możemy porównać wariancję każdego komponentu w odniesieniu do wariancji oryginalnej serii.

set.seed(123)
x <- ts(rnorm(144, sd=1), frequency=12)
a <- stl(x, s.window="periodic")
apply(a$time.series, 2, var) / var(x)
#   seasonal      trend  remainder 
# 0.07080362 0.07487838 0.81647852 

Widzimy, że to pozostała część wyjaśnia większość wariancji danych (jak można oczekiwać w przypadku procesu białego szumu).

Jeśli weźmiemy szereg z sezonowością, względna wariancja składnika sezonowego jest znacznie bardziej istotna (chociaż nie mamy prostego sposobu na przetestowanie go, ponieważ less nie jest parametryczny).

y <- diff(log(AirPassengers))
b <- stl(y, s.window="periodic")
apply(b$time.series, 2, var) / var(y)
#    seasonal       trend   remainder 
# 0.875463620 0.001959407 0.117832537 

Względne wariancje wskazują, że sezonowość jest głównym składnikiem wyjaśniającym dynamikę serii.


Nieostrożne spojrzenie na fabułę stlmoże być zwodnicze. Przywołany ładny wzór stlmoże przypuszczać, że w danych można zidentyfikować odpowiedni wzorzec sezonowy, ale dokładniejsze przyjrzenie się może ujawnić, że tak nie jest. Jeśli celem jest podjęcie decyzji o występowaniu sezonowości, mniejszy rozkład może być przydatny jako wstępny pogląd, ale należy go uzupełnić innymi narzędziami.


W twoim przykładzie AirPassengers nie widać trendu, a na wykresie wyraźnie widać trend (AirPassengers). Tendencja dochodzi do 0,86 (z sezonową tylko 0,1), jeśli zostanie usunięte oświadczenie „diff (log (AirPassengers))”. Co powinno być zrobione?
rnso

Podałem przykład, który jest liczbowo jasny. W praktyce samo porównanie wariancji wygładzonych składników może nie wystarczyć, aby dojść do wniosku o występowaniu sezonowości. Na przykład, jak stwierdzono w tym przypadku, jeśli trend nie zostanie usunięty przez uwzględnienie różnic, wariancja trendu dominuje wariancja komponentu sezonowego. Pytanie brzmi: czy względna wariancja 0,1 jest wystarczająco duża, aby uznać ten składnik za istotny? Problem polega na tym, że w oparciu o less, nie ma prostego sposobu sprawdzenia, czy wariancja elementu jest znacząca.
javlacalle

Tak jak powiedziałem, w tym i innych przypadkach powinniśmy zastosować inne metody w celu sprawdzenia obecności sezonowości. Zobacz na przykład drugą część mojej odpowiedzi tutaj . Po stwierdzeniu, że w danych występuje sezonowość, możemy użyć lessa, aby uzyskać wzorzec tego składnika.
javlacalle

Dla wyjaśnienia, w jaki sposób względna wariancja pokazuje, jak duża część rozkładu odgrywa w ogólnych danych? IE 70% sezonowo, 20% trend. itp.
Ted Mosby,

1
@TedMosby Wariancja jest miarą zmienności / rozproszenia danych. Suma wariancji składników (np. Trend, sezonowość) i wariancja reszty sumuje się z wariancją oryginalnej serii. W ten sposób, porównując wariancję komponentu z wariancją oryginalnej serii, możemy uzyskać pojęcie o tym, jak istotny jest komponent (tj. Jak duża zmienność danych jest wyjaśniona przez komponent).
javlacalle

2

W podobny sposób widziałem wykorzystanie modeli Fouriera do danych niesezonowych, zmuszając strukturę sezonową do dopasowania i wartości prognozy, powodując podobny (wstrzymujący oddech!) Wynik. Dopasowanie założonego modelu daje użytkownikowi to, co narzuca / zakłada, co nie zawsze jest tym, co sugerują / dostarczają dobre analizy.


1
stl()nie opiera się na ideach Fouriera. Chociaż nie widziałem jeszcze nikogo, kto opowiada się za „bezmyślną” analizą, zauważ, że każda dopasowana rodzina modeli może być uznana za narzuconą lub domniemaną. Pytanie brzmi, jak daleko jakakolwiek procedura umożliwia użytkownikom zdawanie sobie sprawy z tego, czy i jak źle działa dla określonego zestawu danych.
Nick Cox,

@NickCox całkiem prawda ....
IrishStat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.