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.
Odpowiedzi:
@ 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:
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
tsoutlier
pakiet 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.
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.
źródło
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.
źródło