Jak interpretować wyniki modelu TBATS i diagnostykę modelu

11

Mam półgodzinne dane zapotrzebowania, które są szeregami czasowymi obejmującymi wiele sezonów. Użyłem tbatsw forecastpakiecie w R i uzyskałem takie wyniki:

TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>}) 

Czy to oznacza, że ​​seria niekoniecznie wykorzystuje transformację Box-Coxa, a terminem błędu jest ARMA (5, 4), a terminami 6, 6 i 5 używa się wyjaśnień dotyczących sezonowości? Co oznacza ten tłumiony parametr 0,8383, czy służy on również do transformacji?

Poniżej znajduje się wykres rozkładu modelu:

wprowadź opis zdjęcia tutaj

Zastanawiam się, co zrobić leveli slopepowiedzieć o modelu. „Nachylenie” określa trend, ale co z tym level? Jak uzyskać wyraźniejszą fabułę dla session 1i session 2, które są odpowiednio dzienne i tygodniowe sezonowe.

Wiem także, jak wiedzieć, jak wykonać diagnostykę modelu, tbatsaby ocenić model, z wyjątkiem wartości RMSE. Normalnym sposobem jest sprawdzenie, czy błąd jest białym szumem, ale tutaj błąd ma być serią ARMA. Wypisuję „acf” i „pacf” błędu i nie sądzę, aby wyglądało to jak ARMA (5,4). Czy to znaczy, że mój model nie jest dobry?

acf(resid(model1),lag.max = 1000)
pacf(resid(model1),lag.max=1000)

wprowadź opis zdjęcia tutaj

Ostatnie pytanie RMSEjest obliczane przy użyciu dopasowanej wartości i prawdziwej wartości. Co się stanie, jeśli użyję wartości przewidywanej fc1.week$meani wartości rzeczywistej do oceny modelu, czy nadal jest on nazywany RMSE? Czy jest na to inna nazwa?

fc1.week <-forecast(model1,h=48*7)
fc1.week.demand<-fc1.week$mean
Jeannie
źródło

Odpowiedzi:

8

Na stronie pomocy dla ?tbatsstwierdzamy, że:

Dopasowany model jest oznaczony jako TBATS (omega, p, q, phi, ...), gdzie omega jest parametrem Box-Coxa, a phi jest parametrem tłumienia; błąd jest modelowany jako proces ARMA (p, q), a m1, ..., mJ lista okresów sezonowych użytych w modelu, a k1, ..., kJ są odpowiednią liczbą terminów Fouriera zastosowanych dla każdej sezonowości.

Więc:

  • omega = 1, co oznacza, że ​​rzeczywiście nie było transformacji Box-Coxa .
  • phi = 0,838, co oznacza, że ​​trend zostanie osłabiony. (Szczerze mówiąc, nie wiem, czy lub odpowiada całkowitemu tłumieniu. Najlepiej pobawić się trochę z symulowanymi danymi.) Zobacz parametr dla .ϕ=0ϕ=1use.damped.trendtbats()
  • Masz trzy różne cykle sezonowe, jeden o długości 48 = 24 * 2 (codziennie), jeden o długości 336 = 7 * 24 * 2 (tygodniowo) i jeden o długości 17520 = 365 * 24 * 2 (rocznie). tbatspasuje do pierwszego z sześcioma terminami Fouriera, drugi z sześcioma, ostatni z pięcioma.

Oryginalny artykuł TBATS autorstwa De Livera, Hyndman & Snyder (2011, JASA ) jest oczywiście przydatny.

Kolejny:

  • „Poziom” to lokalny poziom szeregów czasowych.
  • „Trend” to trend lokalny.

Są one analogiczne do bardziej powszechnego rozkładu trendów sezonowych przy użyciu lowess (STL) . Spójrz na stl()polecenie.

Aby uzyskać wyraźniejszy wykres dla sezonu 1 i sezonu 2, możesz spojrzeć na wartości liczbowe poszczególnych składników modelu TBATS. Spójrz na str(tbats.components(model1))i summary(tbats.components(model1)). tbats.components()daje ci wielokrotny obiekt szeregów czasowych ( mts), który jest zasadniczo macierzą - jedna z kolumn da ci każdy składnik sezonowy.

residuals()powinien działać tak, jakby działał wszędzie w R; to znaczy, powinien zwrócić końcowe resztki. Powinny to być rzeczywiście szumy białe, ponieważ są to pozostałości po zastosowaniu ARiMR (5,4). Szczyty w twoim ACF wydają się być regularne - wygląda na to, że pozostała sezonowość. Czy możesz wywnioskować ich okresowość? (Naprawdę nie pomaga to, że opóźnienia są liczone jako wielokrotności najdłuższego cyklu sezonowego).

Wreszcie tak, błąd średniokwadratowy pierwiastka, który jest powszechną miarą dokładności prognozy punktowej , ma ten sam akronim poza próbą: RMSE.

Stephan Kolassa
źródło
1
Wielkie dzięki! Tak, szczyt ACF jest regularny, jeden pik w 48 opóźnieniach. Problem polega na tym, że w swoich szeregach czasowych uwzględniłem już 48 jako sezonowe. Jak zwykle robisz, aby naprawić resztki sezonowe? Coś jeszcze warto spróbować?
Jeannie
1
Szum. Niestety nie widzę sposobu, aby wymusić tbats()włączenie większej liczby warunków Fouriera dla określonych sezonowości. Przepraszam ...
Stephan Kolassa,