Obliczanie wskaźników sezonowości dla złożonej sezonowości

11

Chcę prognozować artykuły detaliczne (według tygodnia) za pomocą wygładzania wykładniczego. W tej chwili utknąłem w sposobie obliczania, przechowywania i stosowania indeksów sesonalności.

Problem polega na tym, że wszystkie przykłady, które znalazłem, dotyczą pewnego rodzaju sezonowości. W moim przypadku mam następujące problemy: 1. Pory roku nie występują w tym samym tygodniu co roku: są ruchome. Mardi-gras, Wielki Post, Wielkanoc i kilka innych. 2. Są pory roku, które zmieniają się w zależności od roku. Na przykład jest święto narodowe. W zależności od tego, czy wakacje są blisko weekendu, klienci opuszczą miasto. To tak jakby mieć dwa sezony: jeden, w którym klienci opuszczają miasto, i drugi, w którym nie opuszczają miasta. 3. Czasami występują dwie (lub 3) pory roku. Na przykład mieliśmy sezon „Mardi-Gras” występujący w tym samym czasie co sezon walentynkowy.
4. Czasami pory roku zmieniają się w czasie. Na przykład „sezon Halloween” rozpoczął się na początku tego roku. Święta Bożego Narodzenia to także kolejny przykład, w którym wydaje się, że każdego roku zaczynamy wcześniej nosić produkty.

Wydaje mi się, że muszę znaleźć sposób na ustanowienie pewnego rodzaju „profili sezonowych”, które następnie, w zależności od konkretnego scenariusza, zostaną w jakiś sposób dodane, aby uzyskać prawidłowy wskaźnik sezonowy. Czy to ma sens?

Czy ktoś wie, gdzie mogę znaleźć praktyczne informacje, jak to zrobić?

Dzięki, Edgard

Elriba
źródło

Odpowiedzi:

7

Pod względem opisywanych sezonowości najlepsze jest prawdopodobnie podejście zmienne. Jest to jednak łatwiejsze w obsłudze w środowisku ARIMA niż w trybie wygładzania wykładniczego. gdzie każdazmiennaDt,kodpowiada jednemu z wydarzeń wakacyjnych lub festiwalowych. W ten sposóbfunkcja w R dopasuje zmienne regresji (jako regresja z błędami ARIMA, a nie jako model ARIMAX).

yt=za+b1ret,1++bmret,m+N.tN.tARIMA
ret,karima

Jeśli naprawdę chcesz pozostać przy strukturze wygładzania wykładniczego, dyskutuj o tym, jak uwzględnić zmienne towarzyszące w mojej książce z 2008 r. Na temat wygładzania wykładniczego . Możesz także spojrzeć na mój niedawny artykuł na temat wygładzania wykładniczego ze złożoną sezonowością, chociaż rodzaje komplikacji sezonowych, które omawiamy, są trudniejsze niż opisujący poruszający festiwal.

Rob Hyndman
źródło
Cześć Kwak i Rob. Dzięki za obejrzenie tego. Chciałem zastosować wygładzanie wykładnicze, ponieważ to jest bardziej znane mi. Myślę, że muszę nauczyć się korzystać z frameworka ARIMA. Czy mógłbyś polecić dobrą książkę, która pomogłaby mi dowiedzieć się wystarczająco dużo o architekturze ARIMA, aby zastosować takie fałszywe podejście do zmiennych? Mam „Prognozowanie, szeregi czasowe i regresję” Bowermana oraz „Prognozowanie: praktyka i proces zarządzania popytem” Levenbacha, których uczyłem się o wygładzaniu wykładniczym. Nie wiem, czy są wystarczająco szczegółowe, aby uzyskać to, czego potrzebowałbym. Dzięki!
elriba
Bowerman O'Connell i Koehler są całkiem dobrzy do wprowadzania modeli ARIMA, ale nie sądzę, że zawiera ARIMA z współzmiennymi. Możesz wypróbować mój podręcznik z 1998 roku, który obejmuje modelowanie i regresję ARIMA z błędami ARIMA na poziomie wprowadzającym. Szczegółowe informacje można znaleźć na stronie robjhyndman.com/forecasting .
Rob Hyndman,
1

Prostym rozwiązaniem byłoby uwzględnienie manekinów zdarzeń w specyfikacji:

(1)yt^=λ1yt-1+...+λkyt-k+ϕ1ret,1+ϕmret,m

ret,m1tmm

λ1yt-1+...+λkyt-k

Zakłada to, że masz co najmniej 20 obserwacji dla każdego zdarzenia (tj. 20 „mardi gras”). Jeśli tak nie jest, możesz spróbować połączyć kilka wydarzeń razem (np. Mardi gras i święto pracy).

R do dopasowania (1) jest dość proste, zakładając, że dlsales jest stacjonarny, a D jest macierzą zmiennych zastępczych:

fit<-arima(dlsales,order=c(4,0,0),seasonal = list(order = c(1, 0, 0),period=52),xreg = D)

Zaczynając od tego miejsca, możesz zadawać bardziej szczegółowe pytania dotyczące części mojej odpowiedzi, które nie są ci znane (nie wiem, jaki jest twój poziom w statystykach).

użytkownik603
źródło
2
W rzeczywistości funkcja arima w R nie pasuje do twojego modelu (1). arima () wykonuje regresję z błędami ARIMA, a twoje równanie (1) jest modelem ARMAX.
Rob Hyndman
Rob:> Zredagowałem równanie pierwsze. Czy możesz wskazać źródło, w którym wyjaśniono różnicę między pachą a regresją z błędami arima (lub alternatywnie można podać intuicyjne wyjaśnienie) Czy znasz również pakiet R, który implementuje modele ARMAX? Z góry dziękuję.
user603
Model ARMAX pierwszego rzędu z jedną zmienną towarzyszącą to y_t = a + bx_t + cy_ {t-1} + e_t, gdzie e_t oznacza średnią zero. Odpowiadająca regresja z błędem ARIMA to y_t = a + bx_t + n_t gdzie n_t = phi * n_ {t-1} + z_t i z_t oznacza średnią zero.
Rob Hyndman,
1
@kwak. Po pierwsze, n_t = phi n_ {t-1} + z_t to AR (1). Proces średniej ruchomej rzędu 1 byłby n_t = theta z_ {t-1} + z_t. Po drugie, regresja z błędami MA odpowiada modelowi MAX. Ale po dodaniu terminów AR w procesie błędu nie ma równoważności między dwiema klasami. Po trzecie, funkcja arimax () w TSA pasuje do modeli funkcji przesyłania, których szczególnym przypadkiem jest regresja z błędami ARIMA. Nie pasuje do modeli ARIMAX. Mógłbym napisać o tym na blogu, ponieważ trudno jest znaleźć różne klasy modeli porównywane i omawiane gdziekolwiek.
Rob Hyndman,
2
Próbowałem podsumować różne modele na stronie robjhyndman.com/researchtips/arimax
Rob Hyndman