Problemem, z którym mam do czynienia, jest przewidywanie wartości szeregów czasowych. Patrzę na jedną serię czasową naraz i na podstawie np. 15% danych wejściowych chciałbym przewidzieć jej przyszłe wartości. Do tej pory natknąłem się na dwa modele:
- LSTM (długoterminowa pamięć krótkotrwała; klasa rekurencyjnych sieci neuronowych)
- ARIMA
Próbowałem obu i przeczytałem kilka artykułów na ich temat. Teraz staram się lepiej zrozumieć, jak porównać oba. Co znalazłem do tej pory:
- LSTM działa lepiej, jeśli mamy do czynienia z ogromną ilością danych i dostępna jest wystarczająca ilość danych szkoleniowych, natomiast ARIMA jest lepszy dla mniejszych zestawów danych (czy to prawda?)
- ARIMA wymaga szeregu parametrów,
(p,q,d)
które należy obliczyć na podstawie danych, natomiast LSTM nie wymaga ustawiania takich parametrów. Jednak istnieją pewne hiperparametry, które musimy dostroić do LSTM. - EDIT: Jedną z głównych różnic między nimi, które zauważyłem podczas czytania ciekawy artykuł tutaj jest to, że ARIMA mógł jedynie wykonywać również na stacjonarnych szeregów czasowych (gdzie nie ma sezonowości, trendu i itd.) I trzeba dbać o to, czy chcesz skorzystać z ARIMA
Poza wyżej wymienionymi właściwościami nie mogłem znaleźć żadnych innych punktów ani faktów, które mogłyby pomóc mi w wyborze najlepszego modelu. Byłbym bardzo wdzięczny, gdyby ktoś mógł mi pomóc w znalezieniu artykułów, artykułów lub innych rzeczy (jak dotąd nie miał szczęścia, tylko niektóre ogólne opinie tu i tam i nic na podstawie eksperymentów).
Muszę wspomnieć, że pierwotnie mam do czynienia z przesyłaniem danych, jednak na razie korzystam z zestawów danych NAB, które obejmują 50 zestawów danych o maksymalnym rozmiarze 20 000 punktów danych.
źródło
Odpowiedzi:
Oświadczenie 1 jest poprawne, oświadczenie 2 jest poprawne, ale wymaga opracowania, a oświadczenie 3 jest niepoprawne w przypadku sezonowego ARIMA:
Poniższe wskazówki mogą skierować Cię w dobrym kierunku, ale mam nadzieję, że uzyskasz jeszcze kilka odpowiedzi z większą głębią na arenie LSTM.
Wspominasz, że wypróbowałeś oba algorytmy i po prostu próbujesz dowiedzieć się, który z nich jest lepszy, co prowadzi mnie do wniosku, że masz więcej problemów z procesem analizy danych i weryfikacji krzyżowej niż ze specyfiką modeli.
Szeregi czasowe ogólnie:
Szeregi czasowe są na ogół trudne do przewidzenia. Gdyby były łatwe do przewidzenia, wszyscy naukowcy zajmujący się danymi byliby zamożni, mając dokładne prognozy wartości wszystkich zasobów. Rzeczywistość jest taka, że fundusze hedgingowe nie przewyższają przeciętnie rynku, a prognozowanie szeregów czasowych jest zazwyczaj bardzo słabe i dotyczy jedynie bardzo krótkich okresów. Główne problemy polegają na tym, że jest dużo hałasu, jest wiele ukrytych wpływów, modele są zbyt uproszczone, czynniki wpływające nie zachowują się tak, jak nam się wydaje, wzajemne oddziaływanie między liniowością a nieliniowością jest subtelne i mylące, ... nieskończenie.
ARIMA
Nie masz racji w ocenie, że ARIMA wymaga stacjonarnych szeregów czasowych do prognozowania. ARIMA niesezonowy ma trzy wartości wejściowe, które pomagają kontrolować wygładzanie, stacjonarność i prognozowanie ARIMA (p, d, q), gdzie:
Natomiast sezonowa ARIMA ma sześć wartości wejściowych ARIMA (p, d, q, P, D, Q), gdzie:
Z zastrzeżeniem powyższych oświadczeń kwalifikacyjnych, sugeruję grę z sezonową ARIMA, aby poczuć zawiłości związane z wygładzaniem, usuwaniem sezonów, usuwanie trendów, usuwanie szumów i prognozowanie.
LSTM
Nie wiem wystarczająco dużo o LSTM, aby dodać tutaj dużo. Dodam, że czerwone flagi są zwykle wywoływane, gdy ktoś rozpoczyna ćwiczenie analizy danych od głębokiego uczenia się. Proponuję nauczyć się jak najwięcej, korzystając z ARIMA, a następnie wykorzystać część swojej wiedzy ARIMA, aby pomóc Ci nauczyć się LSTM. Sieci neuronowe mogą być bardzo potężnym narzędziem, ale:
Krzyżowa walidacja i porównywanie modeli:
Szeregi czasowe są zabawne, ponieważ wszystkie dane szkoleniowe można zwykle przekształcić w zestawy szkoleniowe nadzorowane. Raz można po prostu wziąć szereg czasowy i cofnąć czas. To znaczy ... wybierz punkt w czasie i udawaj, że nie masz żadnych dodatkowych danych, a następnie przygotuj prognozę i sprawdź, jak dobrze to zrobiłeś. Możesz przemierzać szeregi czasowe, robiąc to razy, aby uzyskać ocenę wydajności twojego modelun i porównać modele, zachowując niezbędne środki ostrożności, aby zapobiec nadmiernemu dopasowaniu .
Mam nadzieję, że to pomoże i powodzenia!
źródło
Dodanie do odpowiedzi @ AN6U5.
Z czysto teoretycznego punktu widzenia niniejszy artykuł pokazuje, że RNN są uniwersalnymi aproksymatorami. Nie przeczytałem tego artykułu szczegółowo, więc nie wiem, czy dowód można zastosować również do LSTM, ale podejrzewam, że tak. Największy problem z RNN ogólnie (w tym LSTM) polega na tym, że są one trudne do trenowania z powodu eksploracji gradientów i problemu znikania gradientów. Praktyczny limit dla LSTM wydaje się wynosić około 200 ~ kroków przy standardowym spadku gradientu i losowej inicjalizacji. Jak już wspomniano, ogólnie rzecz biorąc, aby każdy model głębokiego uczenia działał dobrze, potrzebujesz dużej ilości danych i stosów dostrajania.
Model ARIMA jest bardziej ograniczony. Jeśli twój podstawowy system jest zbyt złożony, po prostu niemożliwe jest dobre dopasowanie. Ale z drugiej strony, jeśli podstawowy model jest wystarczająco prosty, jest znacznie wydajniejszy niż podejście do głębokiego uczenia się.
źródło
Modele ARIMA są liniowe, a modele LSTM są nieliniowe. Niektóre inne parametryczne nieliniowe modele szeregów czasowych, które badali statystycy, to progowe modele autoregresyjne (TAR) i modele łagodnego przejścia autoregresyjnego (STAR). Pakiet R tsDyn implementuje te modele.
Zastanawiam się, jak radzą sobie modele STAR w porównaniu z LSTM.
źródło
Doszedłem do tego samego wniosku, co ty i inni, tradycyjne prognozowanie jest nadal prawdopodobnie najbardziej odpowiednie i być może niezawodne dla szeregów czasowych wartości liczbowych. W głębokim uczeniu się pojawia się niewielki zastój, w którym szeregi czasowe dla wartości liczbowych mieszają się z głębokim uczeniem się, gdzie głębokie uczenie się (obecnie) dotyczy współczesnych wyzwań w rozpoznawaniu wzorców w zakresie wykrywania obrazu, dźwięku, czystego tekstu lub wykrywania anomalii. Często mam dobre wyniki z VAR / VECM dla codziennych danych transakcyjnych, które prawdopodobnie mogłyby być zastosowane w przypadku użycia przetwarzania sygnału.
źródło
W skrajnym przypadku miałem okazję studiować prognozę Forex (kurs walutowy) i intensywnie porównywać wyniki LSTM, okienkowanego MLP i ARIMA. Jak mówi wiele artykułów, szereg czasowy Forex jest zbliżony do szeregu losowych spacerów (jest całkowicie niestacjonarny). Żaden z tych algorytmów nie jest w stanie przewidzieć stawki spot na następny dzień. Na przykład, jeśli nie ma (lub jest niewielka) zmiana, wówczas zachowa aktualną wartość i będzie wyglądać dobrze. Jeśli jednak nastąpi nagła (znaczna) zmiana jutrzejszego kursu kasowego, to zawsze nie można przewidzieć. Problem polega na tym, że na podstawie danych szkoleniowych (np. Historii kursów spotowych z ostatnich 10 lat) nie trzeba się uczyć, czy jest wystarczająco duża, czy nie, ponieważ jest całkowicie losowa (być może z powodu sentymentów dealerów giełdowych ...) .
W rzeczywistości LSTM z opóźnieniem „1” lub ARIMA z (1,0,0) będzie działać najlepiej, ponieważ przechowywanie danych z więcej niż 1 opóźnieniem wcale nie pomaga. W przypadku tego rodzaju szeregów czasowych powiedziałbym, że pod względem wydajności śledzenia 1) ARIMA, 2) LSTM, 3) MLP. Ostatni komentarz ... MLP z parametrami makro / mikro ekonomicznymi (powiedzmy różnicą PKB, stopami obligacji, ceną ropy naftowej, indeksem dolara itp.), Ponieważ dodatkowe funkcje w ogóle nie działały.
źródło