Przechwytywanie sezonowości w regresji wielokrotnej dla danych dziennych

13

Mam codzienne dane dotyczące sprzedaży produktu o dużej sezonowości. Chcę uchwycić sezonowość w modelu regresji. Czytałem, że jeśli masz dane kwartalne lub miesięczne, w takim przypadku możesz utworzyć odpowiednio 3 i 11 zmiennych zastępczych - ale czy mogę sobie poradzić z danymi dziennymi?

Mam trzy lata codziennych danych. Zmienne niezależne to cena, flaga promocyjna (tak / nie) i temperatura. Zmienna zależna to sprzedaż tego produktu. Nie szukam modelu szeregów czasowych, ponieważ używam modelu regresji wielokrotnej.

Arushi
źródło
Ile masz danych? Ile lat warto? Czy masz dane na temat temperatury? Jaka jest reszta twojego modelu? Jakie są twoje DV i IV?
Peter Flom - Przywróć Monikę
Czy oprócz tego, o co pytał Peter Flom, modelujesz swoje dane jako jednowymiarowe szeregi czasowe czy wielowymiarowe szeregi czasowe? Jeśli jest wielowymiarowy, czy masz inne zmienne? Czy te zmienne wykazują zachowanie sezonowe? jeśli tak, dodanie zmiennej zastępczej byłoby niepotrzebne. Czy możesz podać te dodatkowe informacje?
przepowiednia
Zredagowałem swoje pytanie. Czy możesz podać jakieś rozwiązanie. Dzięki
Arushi,
Całkowicie zgadzam się z @IrishStat, nie przypuszczamy, że będziemy ignorować modele szeregów czasowych, całkiem dobry model, który przechwytuje wiele sezonowości. Sugerowałbym, abyś mógł sprawdzić wykładniczy model przestrzeni stanu wygładzania wykładniczego, który ma zdolność obsługi wielu sezonowości, trend, jednocześnie. jego wyłącznie w R. możesz użyć pakietu prognozy ().
Karthi V

Odpowiedzi:

10

@ Irishstat omawiał prawie wszystko, co chciałem powiedzieć, ale odpowiadałbym własnym doświadczeniem w modelowaniu tych danych za pomocą regresji szeregów czasowych i regresji OLS.

Jeśli są to dane dzienne, zrobiłbym następujące czynności:

Utwórz zmienną fikcyjną dla różnych sezonowości:

  • Aby uchwycić sezonowość dnia tygodnia, utwórz 6 zmiennych zastępczych.
  • Aby uchwycić sezonowość dnia miesiąca, utwórz 30 zmiennych zastępczych
  • Aby uchwycić miesiąc roku, utwórz 11 zmiennych zastępczych.

Utwórz zmienną fikcyjną dla zmiennych trendu:

  • Jeśli szereg czasowy wykazuje trend liniowy, dodaj zmienną trendu czasowego.

  • Jeśli szereg czasowy wykazuje trend nieliniowy, dodaj zmienną trendu nieliniowego, taką jak kwadratowa / sześcienna / log

Dodaj zmienne niezależne Zmienne

  • Są to dane szeregów czasowych, dlatego należy zachować ostrożność w zakresie wpływu ołowiu i opóźnienia niezależnych zmiennych. Na przykład w swoim przykładzie wspominasz flagę promocyjną ceny, mogą one nie mieć natychmiastowego wpływu na twoją odpowiedź, tzn. Mogą występować opóźnienia i efekt gnijący / trwały . Na przykład, jeśli dzisiaj uruchomisz promocję, możesz zwiększyć sprzedaż dzisiaj, ale efekt promocji zanika po kilku dniach. Nie ma łatwego sposobu na modelowanie tego za pomocą regresji wielokrotnej, chciałbyś zastosować modelowanie funkcji przenoszenia, które jest parsimonoius i może obsłużyć każdy rodzaj efektu ołowiu i opóźnienia. Zobacz ten przykład, który zamieściłem wcześniej, gdzie jest interwencja (w twoim przypadku punkt cenowy) i następuje gwałtowny wzrost, po którym następuje efekt gnicia. Powiedziawszy to, jeśli maszWiedzę a priori na temat efektu wyprzedzenia i opóźnienia, utwórz dodatkowe zmienne w swoich zmiennych zastępczych przed i po punkcie cenowym oraz (tak / nie) zmiana promocji.

  • Trzeba również dodać zmienne zmienne wskaźnika świąt, na przykład, jak wskazał Irishstat, że należy dodać Wielkanoc / Święto Dziękczynienia (w USA), które przenoszą Święta. Święta, które są ustalonymi datami, będą automatycznie obsługiwane, jeśli używasz fałszywego schematu kodowania do uchwycenia sezonowości.

  • Ponadto należy zidentyfikować wartości odstające, takie jak dodatek / puls (jednorazowe zdarzenie) lub przesunięcie poziomu (stałe przesunięcie) i dodać je jako regresory. Identyfikacja wartości odstających w regresji wielokrotnej dla danych szeregów czasowych jest prawie niemożliwa; potrzebujesz metod wykrywania wartości odstających od szeregu czasowego, takich jak procedura Tsay'a lub procedura Chen i Liu, które zostały włączone do oprogramowania takiego jak AUTOBOX, SPSS, SAS lub tsoutlierpakiet w R.

Potencjalne problemy:

Poniżej przedstawiono problemy, które można napotkać, modelując dane szeregów czasowych przy użyciu regresji wielokrotnej OLS.

  • Błędy mogą być autokorelowane. Zobacz tę fajną stronę internetową i tę stronę wyjaśniającą ten problem. Jednym ze sposobów uniknięcia tego jest zastosowanie metody Uogólniona metoda najmniejszych kwadratów (GLS) lub ARIMAX vs. regresja wielokrotna OLS, w której można skorygować autokorelację.
  • Model OLS nie będzie parsimonoius. Masz zmiennych fikcyjnych dla sezonowości.6+30+11=47
  • Stosując zmienne fikcyjne, zakładasz, że twoja sezonowość jest deterministyczna, tj. Nie zmienia się z czasem. Ponieważ masz tylko 3 lata danych, nie martwię się o to, ale nadal warto nakreślić serię i sprawdzić, czy sezonowość się nie zmieni.

I istnieje wiele innych wad stosowania wielokrotnej regresji. Jeśli przewidywanie jest dla Ciebie ważniejsze, trzymam dane z co najmniej 6 miesięcy i testuję zdolność predykcyjną twojej regresji wielokrotnej. Jeśli twoim głównym celem jest wyjaśnienie korelacji między zmiennymi niezależnymi, byłbym ostrożny przy użyciu regresji wielokrotnej, a zamiast tego zastosowałbym podejście szeregów czasowych, takie jak ARIMAX / GLS.

Jeśli jesteś zainteresowany, możesz odwołać się do doskonałego tekstu Pankratza , dotyczącego funkcji przenoszenia i modelowania regresji dynamicznej. Ogólne prognozy szeregów czasowych znajdują się w Makridakis i in . Dobrym tekstem referencyjnym byłby Diebold dla regresji i prognozowania opartego na szeregach czasowych.

Synoptyk
źródło
Bardzo fajne podsumowanie, ALE chciałbym dodać, że zignorowałeś konkretne efekty tygodnia i szczególne dni miesiąca oprócz możliwych efektów weekendowych, które uważam za bardzo ważne. Ponadto nie należy ignorować efektów przed zdarzeniem i po zdarzeniu. Rozważ aktywność wokół Wielkanocy i innych ważnych świąt / wydarzeń. Często istnieje indywidualny wzorzec reakcji, który wymaga włączenia specyfikacji LEAD. Należy również zauważyć, że parametry mogą i często zmieniają się w czasie i należy zweryfikować założenie stałości parametrów.
IrishStat
Dzięki @Irishstat. Masz rację. Zapomniałem o przenoszeniu świąt i ich skutkach i opóźnieniach.
przepowiednia
2

Potrzebujesz modelu, który będzie obejmował efekty dzienne, tygodniowe, miesięczne, tygodniowe, miesięczne, wyprzedzające i opóźnione w czasie wakacji, nieokreślone, ale możliwe do zidentyfikowania empirycznie zmiany poziomów / kroków, lokalne trendy czasowe, zmiany pulsów sezonowych i pulsów przy jednoczesnym uwzględnieniu struktury ARIMA i ewentualnie radzeniu sobie ze zmianami parametrów i wariancji błędów w czasie. Nazywa się to funkcją przenoszenia i można ją łatwo przekształcić (ALE NIE JEST PARSIMONIOUSLY) jako wielokrotną regresję liniową.

W szczególności codzienny wskaźnik wymagałby 6 predyktorów. Zasadniczo należy dokładnie ustalić (określić), jakiego rodzaju predyktory są potrzebne. Jeśli masz dużo czasu, możesz eksperymentować z niektórymi strukturami, o których wspomniałem. Alternatywnie możesz potrzebować zaawansowanego oprogramowania / doradztwa, aby pomóc ci rozwiązać problem w ciągu swojego życia.

IrishStat
źródło