Różnicowanie sezonowe i auto.arima
Zacząłem studiować różne algorytmy prognozowania, używając R. Jako przykład, może nie najlepszy (ze względu na brak sezonowości), używam akcji Facebooka.
Zestaw treningowy:
SYMBOL <- getSymbols("FB", from = "2015-01-01", to = "2019-12-31")
Stocks_FB_day <- get(SYMBOL[1])
Stocks_FB_day_Cl <- Cl(Stocks_FB_day)
Zestaw testowy:
SYMBOL <- getSymbols("FB", from = "2020-01-01", to = "2020-01-21")
Stocks_FB_day <- get(SYMBOL[1])
Zbudowałem różne modele, w tym ARIMA. Wiem, że ten nie jest najbardziej odpowiedni do codziennych danych giełdowych, jednak postanowiłem spróbować. Biorąc pod uwagę, że jest około 252 obserwacji rocznie, stworzyłem wykresy dekompozycji, używając stl()
funkcji i ustalając częstotliwości równe 126 (pół roku) i 252 (pełny rok). Oba wykresy pokazują, że sygnały sezonowe nie są tak naprawdę istotne. Oto jeden z nich:

Można to również wywnioskować z wykresów ACF i PACF (może się mylę?):

Oto moje eksperymenty z auto.arima
funkcją:

Za każdym razem, gdy pisałem „D = 1” (czy częstotliwość wynosiła 252 czy 126), wymuszając sezonowe różnicowanie, uzyskiwałem wyższe wartości AIC, jednak dokładniejsze prognozy. Nie mówię, że uzyskiwanie płaskich / prawie płaskich linii nie jest właściwe, niemniej jednak czasami chcesz wiedzieć więcej niż tylko ogólny kierunek swojej przyszłej prognozy, jeśli to możliwe.

Zakładam, że popełniłem wiele błędów i jest wysoce prawdopodobne, że całe podejście nie jest w ogóle odpowiednie.
Główne pytanie brzmi:
„Czy ma sens wymuszanie różnicowania sezonowego (D = 1) w przypadkach, gdy daje lepsze wartości prognoz (porównuję je ze zbiorem wstrzymanym, na przykład obliczając MAPE), nawet jeśli wydaje się to niepotrzebne, fakt, że sezonowość jest słaba? ”
Odpowiedzi
Jako ogólna rada, możesz odeprzeć to, co mówią ci dane, które masz przed sobą, jeśli masz wiarygodną wiedzę o domenie . W tym przypadku byłaby to ogólna wiedza na temat rynku akcji lub w szczególności wiedza o biznesie Facebooka, którą wcześniej zdobyłeś niezależnie od przeglądanych serii cen akcji.
Ale jeśli wiedza domeny nie mówi, że powinna być sezonowa, a dane tak naprawdę nie wyglądają na sezonowe, a Ty losowo mówisz „hej, a co jeśli spróbuję wymusić sezonowość?” i uzyskasz lepsze wyniki z przykładowych wyników, zdecydowanie powinieneś być sceptyczny co do tego, czy naprawdę ulepszyłeś swój model w sposób, który będzie przydatny w przyszłości. Jest oczywiście możliwe, że wiedza o domenie jest błędna lub że dodanie różnicowania sezonowego rozwiązało rzeczywisty, ale niezwiązany problem z modelem, który można lepiej uzasadnić bezpośrednio.
Widzę tutaj wielu ludzi, którzy uczą się prognozowania, które wydają się skłaniać do cen akcji jako pierwszy projekt. Niestety, natura domeny polega na tym, że w klasie modeli ARIMA ceny akcji są prawie zawsze najlepiej modelowane jako spacery losowe, więc nie są zbyt interesujące z naukowego punktu widzenia. Jest to podstawowa właściwość domeny i wynika ze sposobu, w jaki zagregowane oczekiwania dotyczące przyszłych cen wpływają na inwestorów na zmianę przyszłej ścieżki cenowej poprzez zakup lub sprzedaż aktywów. Ten mechanizm sprzężenia zwrotnego ma tendencję do tłumienia wszelkich łatwych do przewidzenia ruchów, więc wszystko, co możesz łatwo zaobserwować, to hałas.
Z tego powodu ceny akcji zazwyczaj nie mają silnie sezonowego wzorca. Gdyby można było uzyskać wiarygodne zyski kupując poza sezonem, a sprzedając w sezonie, każdy by to zrobił. Spowodowałoby to wzrost ceny poza sezonem, a spadek w sezonie wysokim, co ostatecznie spowodowałoby zniknięcie tej przewagi. Wcześniejsza wiedza dziedzinowa w tym przypadku mówi, że ceny akcji prawdopodobnie nie są w ten sposób sezonowe.
Tak więc w tym przypadku byłbym sceptyczny co do dodania różnic sezonowych i zbadałbym dokładniej, dlaczego poziom twojej niesezonowej prognozy wydaje się być znacznie bardziej odległy (nie mogę powiedzieć z informacji, które opublikowałeś do tej pory ).