Od wielu lat ludzie przepowiadają warunki pogodowe, wydarzenia gospodarcze i polityczne oraz wyniki sportowe, ostatnio ta obszerna lista została uzupełniona o kryptowaluty. Istnieje wiele sposobów przewidywania wszechstronnych zdarzeń. Na przykład intuicja, opinie ekspertów, wykorzystanie wyników z przeszłości do porównania z tradycyjnymi statystykami i prognozowanie szeregów czasowych to tylko jedne z nich, podczas gdy najnowocześniejszy i najdokładniejszy rodzaj prognoz o szerokim zakresie zastosowań.
Metoda szeregów czasowych
Metoda szeregów czasowych (TS) to zestaw danych, który zbiera informacje przez pewien okres czasu. Istnieją specjalne metody wyodrębniania tego typu:
- liniowe i nieliniowe;
- parametryczne i nieparametryczne;
- jednowymiarowe i wielowymiarowe.
Czas prognozowaniaseria niesie ze sobą unikalny zestaw możliwości, aby sprostać dzisiejszym wyzwaniom. Modelowanie opiera się na nauce ustalania siły napędowej zmiany danych. Proces ten pochodzi z długoterminowych trendów, efektów sezonowych lub nieregularnych wahań, które są charakterystyczne dla ZT i nie są widoczne w innych typach analiz.
Uczenie maszynowe to gałąź informatyki, w której algorytmy są kompilowane z danych i obejmują sztuczne sieci neuronowe, głębokie uczenie, reguły asocjacji, drzewa decyzyjne, uczenie ze wzmacnianiem i sieci bayesowskie. Różnorodne algorytmy zapewniają opcje rozwiązywania problemów, a każdy ma swoje własne wymagania i kompromisy w zakresie wprowadzania danych, szybkości i dokładności wyników. Te, wraz z dokładnością ostatecznych prognoz, będą ważone, gdy użytkownik zdecyduje, który algorytm najlepiej sprawdzi się w badanej sytuacji.
Prognozowanie szeregów czasowych zapożycza się z dziedziny statystyki, ale daje nowe podejście do modelowania problemów. Główny problem uczenia maszynowego i szeregów czasowych jest taki sam – przewidywanie nowych wyników na podstawie wcześniej znanych danych.
Cel modelu predykcyjnego
TS to zestaw punktów danych zbieranych w regularnych odstępach czasu. Są one analizowane w celu określenia długoterminowego trendu, przewidzenia przyszłości lub wykonania innego rodzaju analizy. Istnieją dwie rzeczy, które odróżniają TS od normalnego problemu regresji:
- Zależą od czasu. Więcpodstawowe założenie modelu regresji liniowej, że obserwacje są niezależne, nie ma w tym przypadku zastosowania.
- Wraz z trendem rosnącym lub malejącym, większość TS ma pewną formę sezonowości, tj. zmiany, które są specyficzne dla określonego okresu czasu.
Celem modelu prognozowania szeregów czasowych jest zapewnienie dokładnej prognozy na żądanie. Szereg czasowy ma czas (t) jako zmienną niezależną i docelową zmienną zależną. W większości przypadków prognoza to konkretny wynik, na przykład cena sprzedaży domu, wynik sportowy zawodów, wyniki handlu na giełdzie. Prognoza reprezentuje medianę i średnią oraz zawiera przedział ufności wyrażający poziom ufności w zakresie 80-95%. Gdy są one rejestrowane w regularnych odstępach czasu, procesy nazywane są szeregami czasowymi i są wyrażane na dwa sposoby:
- jednowymiarowy z indeksem czasu, który tworzy niejawny porządek;
- zestaw z dwoma wymiarami: czas ze zmienną niezależną i inną zmienną zależną.
Tworzenie funkcji jest jednym z najważniejszych i najbardziej czasochłonnych zadań w stosowanym uczeniu maszynowym. Prognozowanie szeregów czasowych nie tworzy jednak cech, przynajmniej nie w tradycyjnym sensie. Jest to szczególnie ważne, gdy chcesz przewidzieć wynik kilka kroków naprzód, a nie tylko następną wartość.
Nie oznacza to, że funkcje są całkowicie wyłączone. Należy ich używać ostrożnie z następujących powodów:
- Niejasne, jaka przyszłość jest prawdziwawartości będą dla tych funkcji.
- Jeśli obiekty są przewidywalne i mają pewne wzorce, możesz zbudować model predykcyjny dla każdego z nich.
Należy jednak pamiętać, że użycie wartości predykcyjnych jako cech spowoduje propagację błędu do zmiennej docelowej i prowadzi do błędów lub tendencyjnych prognoz.
Składniki szeregów czasowych
Trend występuje, gdy szereg wzrasta, maleje lub pozostaje na stałym poziomie w czasie, więc jest traktowany jako funkcja. Sezonowość odnosi się do właściwości szeregu czasowego, który wyświetla okresowe wzorce powtarzające się ze stałą częstotliwością (m), na przykład m=12 oznacza, że wzorzec powtarza się co dwanaście miesięcy.
Zmienne fikcyjne podobne do sezonowości można dodawać jako funkcję binarną. Możesz na przykład wziąć pod uwagę święta, imprezy okolicznościowe, akcje marketingowe, niezależnie od tego, czy wartość jest zagraniczna, czy nie. Trzeba jednak pamiętać, że te zmienne muszą mieć określone wzorce. Jednak liczbę dni można łatwo obliczyć nawet dla przyszłych okresów i wpływać na prognozowanie szeregów czasowych, zwłaszcza w obszarze finansowym.
Cykle to pory roku, które nie odbywają się w stałym tempie. Na przykład cechy rocznej reprodukcji rysia kanadyjskiego odzwierciedlają wzorce sezonowe i cykliczne. Nie powtarzają się w regularnych odstępach i mogą wystąpić, nawet jeśli częstotliwość wynosi 1 (m=1).
Wartości opóźnione -jako predyktory można uwzględnić opóźnione wartości zmiennej. Niektóre modele, takie jak ARIMA, autoregresja wektorowa (VAR) lub autoregresywne sieci neuronowe (NNAR), działają w ten sposób.
Składniki zmiennej będącej przedmiotem zainteresowania są bardzo ważne dla analizy i prognozowania szeregów czasowych, aby zrozumieć ich zachowanie, wzorce i móc wybrać odpowiedni model.
Atrybuty zbioru danych
Możesz być przyzwyczajony do wprowadzania tysięcy, milionów i miliardów punktów danych do modeli uczenia maszynowego, ale nie jest to wymagane w przypadku szeregów czasowych. W rzeczywistości możliwa jest praca z małym i średnim TS, w zależności od częstotliwości i rodzaju zmiennej, co nie jest wadą metody. Co więcej, takie podejście ma wiele zalet:
- Takie zestawy informacji będą odpowiadać możliwościom komputera domowego.
- W niektórych przypadkach przeprowadź analizę szeregów czasowych i prognozowanie przy użyciu całego zestawu danych, a nie tylko próbki.
- TS length jest przydatne do tworzenia wykresów, które można analizować. Jest to bardzo ważny punkt, ponieważ programiści polegają na grafice w fazie analizy. Nie oznacza to, że nie działają z dużymi szeregami czasowymi, ale początkowo powinny być w stanie poradzić sobie z mniejszymi TS.
- Każdy zestaw danych, który zawiera pole związane z czasem, może skorzystać z analizy i prognozowania szeregów czasowych. Jeśli jednak programista ma większy zestaw danych, DB (TSDB)może być bardziej odpowiednie.
Niektóre z tych zestawów pochodzą ze zdarzeń zarejestrowanych ze znacznikiem czasu, dziennikami systemowymi i danymi finansowymi. Ponieważ TSDB działa natywnie z szeregami czasowymi, jest to świetna okazja do zastosowania tej techniki do zestawów danych o dużej skali.
Uczenie maszynowe
Uczenie maszynowe (ML) może przewyższać tradycyjne metody prognozowania szeregów czasowych. Istnieje mnóstwo badań porównujących metody uczenia maszynowego z bardziej klasycznymi metodami statystycznymi na danych TS. Sieci neuronowe to jedna z technologii, które zostały szeroko zbadane i stosują podejścia TS. Metody uczenia maszynowego prowadzą w rankingach gromadzenia danych na podstawie szeregów czasowych. Te zestawy okazały się skuteczne, przewyższając czyste zestawy TS przeciwko M3 lub Kaggle.
MO ma swoje specyficzne problemy. Opracowywanie funkcji lub generowanie nowych predyktorów z zestawu danych jest dla niego ważnym krokiem i może mieć ogromny wpływ na wydajność oraz być niezbędnym sposobem rozwiązania problemów związanych z trendami i sezonowością danych TS. Ponadto niektóre modele mają problemy z tym, jak dobrze pasują do danych, a jeśli nie, mogą przegapić główny trend.
Seriale czasowe i podejścia do uczenia maszynowego nie powinny istnieć w oderwaniu od siebie. Można je łączyć, aby uzyskać korzyści z każdego podejścia. Metody prognozowania i analiza szeregów czasowych są dobre w rozkładaniu danych na dane trendowe i sezonowe.elementy. Ta analiza może być następnie wykorzystana jako dane wejściowe do modelu ML, który ma w swoim algorytmie informacje o trendach i sezonowości, dając to, co najlepsze z obu światów.
Zrozumienie opisu problemu
Rozważmy na przykład TS związane z prognozowaniem liczby pasażerów w nowej usłudze kolei dużych prędkości. Na przykład masz dane z 2 lat (sierpień 2016 – wrzesień 2018) i z tymi danymi musisz przewidzieć liczbę pasażerów na kolejne 7 miesięcy, mając dane z 2 lat (2016-2018) na poziomie godzinowym z liczba podróżujących pasażerów i konieczne jest oszacowanie ich liczby w przyszłości.
Podzbiór zbioru danych do prognozowania z szeregiem czasowym:
- Tworzenie pociągu i pliku testowego do symulacji.
- Pierwsze 14 miesięcy (sierpień 2016 – październik 2017) są wykorzystywane jako dane treningowe, a kolejne 2 miesiące (listopad 2017 – grudzień 2017) to dane testowe.
- Codzienna agregacja zbioru danych.
Wykonaj wizualizację danych, aby zobaczyć, jak zmieniają się one na przestrzeni czasu.
Metoda konstrukcji podejścia naiwnego
Biblioteka użyta w tym przypadku do przewidywania TS to statsmodels. Musi być zainstalowany, zanim będzie można zastosować którekolwiek z tych podejść. Być może statsmodels jest już zainstalowany w środowisku Pythona, ale nie obsługuje metodprzewidywanie, więc będziesz musiał sklonować go z repozytorium i zainstalować ze źródła.
Dla tego przykładu oznacza to, że ceny podróży monetą są stabilne od samego początku i przez cały czas. Ta metoda zakłada, że następny oczekiwany punkt jest równy ostatniemu obserwowanemu punktowi i jest nazywany podejściem naiwnym.
Teraz oblicz odchylenie standardowe, aby przetestować dokładność modelu w zestawie danych testowych. Z wartości RMSE i powyższego wykresu możemy wywnioskować, że Naive nie jest odpowiedni dla opcji o dużej zmienności, ale jest używany dla opcji stabilnych.
Prosty średni styl
Aby zademonstrować metodę, rysowany jest wykres, zakładając, że oś Y reprezentuje cenę, a oś X reprezentuje czas (dni).
Z tego możemy wywnioskować, że cena rośnie i spada losowo z niewielką marżą, dzięki czemu średnia wartość pozostaje stała. W takim przypadku możesz przewidzieć cenę następnego okresu, podobną do średniej ze wszystkich ostatnich dni.
Ta metoda prognozowania z oczekiwaną średnią z wcześniej zaobserwowanych punktów nazywana jest prostą metodą średniej.
W tym przypadku brane są wcześniej znane wartości, obliczana jest średnia i przyjmowana jako następna wartość. Oczywiście nie będzie to dokładne, ale jest całkiem blisko i są sytuacje, w których ta metoda działa najlepiej.
Na podstawie wyników wyświetlanych na wykresie ta metoda działa najlepiej, gdy średnia wartość w każdym okresie pozostaje stała. Chociaż metoda naiwna jest lepsza niż średnia, ale nie dla wszystkich zestawów danych. Zaleca się wypróbowanie każdego modelu krok po kroku i sprawdzenie, czy poprawia to wynik, czy nie.
Model średniej ruchomej
Na podstawie tego wykresu możemy wywnioskować, że ceny wzrosły kilkakrotnie w przeszłości z dużym marginesem, ale obecnie są stabilne. Aby użyć poprzedniej metody uśredniania, musisz wziąć średnią wszystkich poprzednich danych. Ceny z okresu początkowego będą silnie wpływać na prognozę okresu następnego. Dlatego, jako poprawę w stosunku do prostej średniej, weź średnią cen tylko z ostatnich kilku okresów.
Ta technika prognozowania nazywana jest techniką średniej ruchomej, czasami określana jako "ruchome okno" o rozmiarze "n". Stosując prosty model, przewiduje się kolejną wartość w TS, aby sprawdzić dokładność metody. Wyraźnie naiwny przewyższa zarówno średnią, jak i średnią ruchomą dla tego zestawu danych.
Istnieje wariant prognozy metodą prostego wygładzania wykładniczego. W metodzie średniej ruchomej przeszłe „n” obserwacji ma jednakową wagę. W takim przypadku możesz napotkać sytuacje, w których każde z przeszłych „n” wpływa na prognozę na swój własny sposób. Ta zmienność, która inaczej waży przeszłe obserwacje, nazywa się metodąważona średnia ruchoma.
Ekstrapolacja wzorców
Jedną z najważniejszych właściwości potrzebnych do rozważenia algorytmów prognozowania szeregów czasowych jest możliwość ekstrapolacji wzorców poza domenę danych treningowych. Wiele algorytmów ML nie ma tej możliwości, ponieważ są one ograniczone do regionu zdefiniowanego przez dane szkoleniowe. Dlatego nie nadają się do TS, którego celem jest projekcja wyniku w przyszłość.
Kolejną ważną właściwością algorytmu TS jest możliwość uzyskania przedziałów ufności. Chociaż jest to domyślna właściwość modeli TS, większość modeli ML nie ma tej możliwości, ponieważ nie wszystkie są oparte na rozkładach statystycznych.
Nie myśl, że do przewidywania ZT są używane tylko proste metody statystyczne. Wcale tak nie jest. Istnieje wiele złożonych podejść, które mogą być bardzo przydatne w szczególnych przypadkach. Generalized Autoregressive Conditional Heteroskedasticity (GARCH), Bayessian i VAR to tylko niektóre z nich.
Istnieją również modele sieci neuronowych, które można zastosować do szeregów czasowych, które wykorzystują predyktory opóźnień i obsługują takie funkcje, jak autoregresja sieci neuronowej (NNAR). Istnieją nawet modele szeregów czasowych zapożyczone ze złożonego uczenia się, szczególnie w rodzinie rekurencyjnych sieci neuronowych, takich jak sieci LSTM i GRU.
Wskaźniki szacunkowe i diagnostyka rezydualna
Najczęstsze wskaźniki przewidywania torms oznacza, którego wiele osób używa przy rozwiązywaniu problemów z regresją:
- MAPE ponieważ jest niezależny od skali i przedstawia stosunek błędu do rzeczywistych wartości w procentach;
- MASE, który pokazuje, jak dobrze prognoza się sprawdza w porównaniu z naiwną średnią prognozą.
Po dostosowaniu metody prognozowania ważne jest, aby ocenić, jak dobrze jest ona w stanie uchwycić modele. Chociaż metryki oceny pomagają określić, jak bardzo wartości są zbliżone do wartości rzeczywistych, nie oceniają, czy model pasuje do TS. Resztki to dobry sposób na ocenę tego. Ponieważ programista próbuje zastosować wzorce TS, może oczekiwać, że błędy będą zachowywać się jak „biały szum”, ponieważ reprezentują coś, czego model nie może uchwycić.
„Biały szum” musi mieć następujące właściwości:
- Pozostałości nieskorelowane (Acf=0)
- Pozostałości mają rozkład normalny z zerową średnią (nieobciążoną) i stałą wariancją.
- Jeśli brakuje jednej z dwóch właściwości, istnieje możliwość ulepszenia modelu.
- Właściwość średniej zerowej można łatwo przetestować za pomocą testu T.
- Właściwości normalności i stałej wariancji są kontrolowane wizualnie za pomocą histogramu reszt lub odpowiedniego jednowymiarowego testu normalności.
Model ARIMA
ARIMA - AutoRegressive Integrated Moving-Average model, jest jedną z najpopularniejszych metod stosowanych w prognozowaniu TS, główniepoprzez autokorelację danych w celu tworzenia modeli wysokiej jakości.
Oceniając współczynniki ARIMA, głównym założeniem jest to, że dane są stacjonarne. Oznacza to, że trend i sezonowość nie mogą wpływać na wariancję. Jakość modelu można ocenić porównując wykres czasowy rzeczywistych wartości z wartościami przewidywanymi. Jeżeli obie krzywe są zbliżone, to można założyć, że model pasuje do analizowanego przypadku. Powinna ujawniać wszelkie trendy i sezonowość, jeśli takie występują.
Analiza reszt powinna pokazać, czy model pasuje: losowe reszty oznaczają, że jest dokładny. Dopasowanie ARIMA do parametrów (0, 1, 1) da takie same wyniki jak wygładzanie wykładnicze, a użycie parametrów (0, 2, 2) da podwójne wyniki wygładzania wykładniczego.
Możesz uzyskać dostęp do ustawień ARIMA w programie Excel:
- Uruchom program Excel.
- Znajdź XL MINER na pasku narzędzi.
- Na wstążce wybierz ARIMA z menu rozwijanego.
Podsumowanie możliwości modelu ARIMA:
- ARIMA - Zintegrowana autoregresyjna średnia krocząca.
- Model prognozowania używany w analizie szeregów czasowych.
- Składnia parametru ARIMA: ARIMA (p, d, q) gdzie p=liczba składników autoregresyjnych, d=liczba różnic sezonowych, a q=liczba składników średniej ruchomej.
Algorytmy w SQL Server
Przewidywanie krzyżowe jest jednym z najważniejszychcechy szeregów czasowych w prognozowaniu zadań finansowych. Jeśli używane są dwie powiązane serie, wynikowy model można wykorzystać do przewidywania wyników jednej serii na podstawie zachowania pozostałych.
SQL Server 2008 ma nowe, zaawansowane funkcje do nauki i używania szeregów czasowych. Narzędzie ma łatwo dostępne dane TS, łatwy w użyciu interfejs do symulacji i odtwarzania funkcji algorytmu oraz okno wyjaśniające z łączem do zapytań DMX po stronie serwera, dzięki czemu możesz zrozumieć, co się dzieje w środku.
Rynkowe szeregi czasowe to szeroki obszar, w którym można zastosować modele i algorytmy uczenia głębokiego. Banki, brokerzy i fundusze eksperymentują obecnie z wdrażaniem analiz i prognoz dla indeksów, kursów walut, kontraktów terminowych, cen kryptowalut, akcji rządowych i nie tylko.
W prognozowaniu szeregów czasowych sieć neuronowa znajduje przewidywalne wzorce, badając struktury i trendy na rynkach oraz udzielając porad traderom. Sieci te mogą również pomóc w wykrywaniu anomalii, takich jak nieoczekiwane szczyty, spadki, zmiany trendów i przesunięcia poziomów. Do prognoz finansowych wykorzystuje się wiele modeli sztucznej inteligencji.