Analiza i przewidywanie szeregów czasowych

Od lat ludzie przewidują warunki pogodowe, wydarzenia gospodarcze i polityczne oraz wyniki sportowe, a ostatnio do tej obszernej listy dołączyły kryptowaluty. Istnieje wiele sposobów na opracowanie prognoz dotyczących przewidywania różnorodnych zdarzeń. Na przykład, intuicja, osąd eksperta, wykorzystanie wyników z przeszłości w celu porównania z tradycyjną statystyką, a prognozowanie szeregów czasowych jest tylko jednym z nich, będąc jednocześnie najbardziej zaawansowanym i dokładnym rodzajem prognozy o szerokim zakresie zastosowań.

Metoda szeregów czasowych

Metoda szeregów czasowych

Metoda szeregów czasowych (TS) to zbiór danych, w którym gromadzone są informacje w pewnym okresie czasu. Istnieją specyficzne metody izolowania tego typu:

  • liniowe i nieliniowe;
  • parametryczne i nieparametryczne;
  • jedno- i wielowymiarowe.

Predykcja szeregów czasowych niesie ze sobą unikalny zestaw możliwości rozwiązywania współczesnych problemów. Modelowanie opiera się na uczeniu się w celu ustalenia siły napędowej zmian w danych. Proces wynika z długoterminowych trendów, efektów sezonowych lub nieregularnych wahań, które są specyficzne dla TS i nie są obserwowane 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 asocjacyjne, drzewa decyzyjne, uczenie wzmacniające i sieci Bayesa. Różne algorytmy zapewniają opcje rozwiązywania problemów, a każdy z nich ma inne wymagania i kompromisy w zakresie wprowadzania danych, szybkości działania i dokładności wyników. Te, wraz z dokładnością ostatecznych przewidywań, będą ważone, gdy użytkownik zdecyduje, który algorytm będzie pracował lepiej jest dla badanej sytuacji.

Przewidywanie szeregów czasowych zapożycza się z dziedziny statystyki, ale zapewnia nowe podejścia do zadań modelowania. Podstawowy problem dla uczenia maszynowego i serii czasowych jest taki sam - przewidywanie nowych wyników na podstawie wcześniej znanych danych.

Cel modelu predykcyjnego

Cel modelu predykcyjnego

TS jest zbiorem punktów danych zebranych w stałych odstępach czasu. Są one analizowane w celu określenia długoterminowego trendu, aby przewidzieć przyszłość lub wykonać inny rodzaj analizy. Są 2 rzeczy, które odróżniają TS od zwykłego problemu regresji

  1. Są one zależne od czasu. W związku z tym podstawowe założenie modelu regresji liniowej, że obserwacje są niezależne, nie ma w tym przypadku zastosowania.
  2. Oprócz trendu rosnącego lub malejącego, większość TS ma jakąś formę sezonowości, czyli zmian charakterystycznych dla pewnego okresu czasu.

Celem modelu prognozowania szeregów czasowych jest dostarczenie dokładnej prognozy zapotrzebowania na żądanie. Szereg czasowy ma czas (t) jako zmienną niezależną i docelową zmienną zależną. W większości przypadków predykcja to określony wynik, np. wartość domu przy sprzedaży, wyniki sportowe, wyniki handlu na giełdzie. Prognoza przedstawia medianę i średnią oraz zawiera przedział ufności wyrażający poziom ufności w przedziale 80-95%. Gdy procesy te są rejestrowane w regularnych odstępach czasu, nazywa się je szeregami czasowymi i wyraża na dwa sposoby

  • univariate z indeksem czasowym, który tworzy niejawne zamówienie;
  • zbiór o dwóch wymiarach: czasu ze zmienną niezależną i inną zmienną zależną.

Generowanie cech jest jednym z najważniejszych i najbardziej czasochłonnych zadań w uczeniu maszynowym. Prognozowanie szeregów czasowych nie tworzy jednak funkcji, przynajmniej nie w tradycyjnym sensie. Jest to szczególnie prawdziwe, gdy chce się przewidzieć wynik kilka kroków do przodu, a nie tylko kolejną wartość.

Nie oznacza to, że funkcje są całkowicie zabronione. Należy je po prostu stosować z ostrożnością z następujących powodów:

  1. Nie jest jasne, jakie będą przyszłe rzeczywiste wartości tych funkcji.
  2. Jeśli obiekty są przewidywalne i mają pewne prawidłowości, to dla każdego z nich można zbudować model predykcyjny.

Jednakże konieczne jest mieć na uwadze, że wykorzystanie przewidywanych wartości jako cech spowoduje propagację błędu do zmiennej docelowej i doprowadzi do błędów lub tendencyjnych przewidywań.

Składniki szeregu czasowego

Składniki szeregu czasowego

Trend istnieje wtedy, gdy szereg rośnie, maleje lub pozostaje stały w czasie, więc przyjmuje się go jako funkcję. Sezonowość odnosi się do właściwości szeregów czasowych, które wykazują okresowe wzorce powtarzające się ze stałą częstotliwością (m), np. m = 12 oznacza, że wzorzec powtarza się co dwanaście miesięcy.

Zmienne dummy podobne do sezonowości można dodać jako funkcję binarną. Możesz np. uwzględnić święta, wydarzenia specjalne, kampanie marketingowe, niezależnie od tego, czy wartość jest obca, czy nie. Należy jednak pamiętać, że zmienne te muszą mieć pewne wzorce. Liczba dni może być łatwo obliczona nawet dla przyszłych okresów i wpływać na prognozowanie szeregów czasowych, zwłaszcza w dziedzinie finansów.

Cykle to pory roku, które nie występują w stałym tempie. Na przykład roczne atrybuty reprodukcji rysia kanadyjskiego odzwierciedlają sezonowe i cykliczne wzorce. Nie powtarzają się w regularnych odstępach czasu i mogą wystąpić nawet przy częstotliwości 1 (m = 1).

Wartości opóźnione - opóźnione wartości zmiennych mogą być włączone jako predyktory. Niektóre modele, takie jak ARIMA, wektorowy autoregresyjny (VAR) lub autoregresyjne sieci neuronowe (NNAR), działają w ten sposób.

Składniki interesującej nas zmiennej są bardzo ważne w analizie szeregów czasowych i prognozowaniu, aby zrozumieć ich zachowanie, wzorce i móc wybrać odpowiedni model.

Atrybuty zbioru danych

Atrybuty zbioru danych

Programista może być użyty do wprowadzenia tysięcy, milionów lub miliardów punktów danych do modeli uczenia maszynowego, ale nie jest to wymagane dla serii czasowych. W rzeczywistości możliwa jest praca z małymi i średnimi TS, w zależności od częstotliwości i rodzaju zmiennej, i nie jest to wadą metody. Co więcej, takie podejście ma tak naprawdę wiele zalet:

  1. Takie zbiory danych odpowiadałyby możliwościom domowego komputera.
  2. W niektórych przypadkach wykonaj analizę szeregów czasowych i predykcję z wykorzystaniem całego zbioru danych, a nie tylko próbki.
  3. Długość TS jest wygodna do tworzenia wykresów, które można analizować. Jest to bardzo ważny punkt, ponieważ programiści opierają swoją analizę na wykresie. Nie oznacza to, że nie działają one z ogromnymi seriami czasowymi, ale początkowo powinny być w stanie obsłużyć mniejsze TS.
  4. Każdy zbiór danych, który zawiera pole związane z czasem może skorzystać z analizy i predykcji szeregów czasowych. Jeśli jednak programista ma większy zbiór danych, bardziej odpowiednia może być baza danych (TSDB).

Niektóre z tych zbiorów pochodzą ze zdarzeń zarejestrowanych za pomocą znaczników czasu, logów systemowych i danych finansowych. Ponieważ TSDB początkowo pracuje z szeregami czasowymi, jest to świetna okazja do zastosowania tej techniki do zbiorów danych o dużej skali.

Uczenie maszynowe

Uczenie maszynowe (ML) może przewyższyć tradycyjne metody prognozowania szeregów czasowych. Istnieje cała sterta badań porównujących metody uczenia maszynowego z bardziej klasycznymi metodami statystycznymi dla danych TS. Sieci neuronowe są jedną z technologii, która została dość szeroko zbadana i stosuje podejścia TS. Metody uczenia maszynowego wiodą prym w gromadzeniu danych z serii czasowych. Te podejścia okazały się lepsze od czystych podejść TS w konkurencji z M3 lub Kaggle.

IO ma swoje specyficzne problemy. Rozwijanie cech lub tworzenie nowych predyktorów ze zbioru danych jest ważnym krokiem dla niego i może mieć ogromny wpływ na wydajność i być koniecznym sposobem rozwiązywanie problemów tendencja i sezonowość danych dotyczących TS. Ponadto niektóre modele mają problemy z tym, jak dobrze pasują do danych, oraz jeśli nie, mogą przegapić podstawowy trend.

Podejścia do szeregów czasowych i uczenia maszynowego nie powinny istnieć w oderwaniu od siebie. Można je połączyć, aby uzyskać korzyści z każdego podejścia. Metody prognozowania i analiza szeregów czasowych jest dobra w rozkładaniu danych na elementy trendu i sezonowości. Analiza ta może być następnie wykorzystana jako dane wejściowe do modelu MoD, który w swoim algorytmie posiada informacje o trendach i sezonowości, co daje najlepsze z obu możliwości.

Zrozumienie stwierdzenia problemu

Dla przykładu rozważmy TS związaną z prognozowaniem liczby pasażerów w nowej usłudze szybkiej kolei. Przykładowo, dostępne są dane z 2 lat (sierpień 2016 r. - Wrzesień 2018 r.), a korzystając z tych danych musimy prognozować liczbę pasażerów na kolejne 7 miesięcy, mając dane za 2 lata (2016-2018) na poziomie godzinowym o liczbie podróżujących pasażerów, musimy oszacować liczbę pasażerów w przyszłości.

Podzbiór zbioru danych do prognozowania z wykorzystaniem szeregu czasowego:

  1. Tworzenie pliku treningowego i testowego do modelowania.
  2. Pierwsze 14 miesięcy (sierpień 2016). - Październik 2017 r.) są wykorzystywane jako dane treningowe, a kolejne 2 miesiące (listopad 2017 r. - Grudzień 2017 r.) - dane testowe.
  3. Codzienne agregowanie zbioru danych.
Agregowanie zbioru danych

Wykonaj wizualizację danych, aby wiedzieć, jak dane zmieniają się w danym okresie czasu.

Wizualizacja danych

Metoda konstrukcyjna "Naive Approach

Biblioteka używana do przewidywania TS w tym przypadku to statsmodels. Należy to ustalić, zanim będzie można zastosować którekolwiek z powyższych podejść. Być może masz już zainstalowany statsmodels w swoim środowisku Pythona, ale nie obsługuje on metod predykcji, więc będziesz musiał sklonować go z repozytorium i zainstalować używając kodu źródłowego.

Kolejność działań

Dla tego przykładu zakłada się, że taryfa monet jest stabilna od początku i w czasie. Metoda ta zakłada, że następny oczekiwany punkt jest równy ostatniemu obserwowanemu punktowi i jest nazywana podejściem naiwnym.

Metoda naiwna

Teraz obliczane jest odchylenie standardowe, aby sprawdzić dokładność modelu na zestawie danych testowych. Z wartości RMSE i powyższego wykresu możemy wywnioskować, że Naive nie jest odpowiedni dla wariantów o dużej zmienności, ale dla stabilnych.

Prosty, przeciętny styl

Aby zademonstrować metodę, wykreślono wykres, zakładając, że oś Y reprezentuje cenę, a oś X czas (dni).

Prosty, przeciętny styl

Można z tego wywnioskować, że cena rośnie i maleje losowo z niewielkim marginesem, tak że wartość średnia pozostaje stała. W tym przypadku można przewidzieć cenę następnego okresu podobną do średniej ceny z wszystkich poprzednich dni.

Ta metoda przewidywania za pomocą oczekiwanej średniej z wcześniej zaobserwowanych punktów nazywana jest metodą średniej prostej.

W tym przypadku bierzemy wcześniej znane wartości, obliczamy średnią i przyjmujemy ją jako następującą wartość. Oczywiście nie będzie to dokładne, ale wystarczająco bliskie i są sytuacje, w których ta metoda się sprawdza najlepszy.

Metoda średniej prostej

Z wyników przedstawionych na wykresie widać, że metoda ta działa najlepiej, gdy średnia wartość dla każdego okresu czasu pozostaje stała. Chociaż metoda naiwna jest lepsza niż metoda ś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

Model średniej ruchomej

Z tego wykresu możemy wywnioskować, że ceny w przeszłości kilkakrotnie wzrastały, ale obecnie są stabilne. Aby zastosować poprzednią metodę uśredniania, należy wziąć średnią ze wszystkich poprzednich danych. Ceny z okresu początkowego będą silnie wpływać na prognozę kolejnego okresu. Więc jako ulepszenie w stosunku do prostej średniej, bierzesz tylko średnią wszystkich cen z ostatnich kilku okresów czasu.

Ta technika prognozowania nazywana jest techniką średniej ruchomej, która czasami określana jest jako "przesuwne okno" o wielkości "n". Korzystając z prostego modelu, przewidzieć następną wartość w TS, aby sprawdzić dokładność metody. Naiwna jest wyraźnie lepsza od średniej i średniej kroczącej dla tego zestawu danych.

Istnieje wariant przewidywania za pomocą prostej metody wygładzania wykładniczego. W metodzie średniej ruchomej, równo ważymy przeszłe obserwacje "n". W tym przypadku można spotkać się z sytuacjami, w których każde z przeszłych "n" wpływa na predykcję w inny sposób. Wariant, który w różny sposób waży przeszłe obserwacje, nazywany jest metodą ważonej średniej ruchomej.

Ekstrapolacja wzorów

Jedna z najważniejszych właściwości, potrzebny do Najważniejszą właściwością algorytmów predykcji szeregów czasowych do rozważenia jest zdolność do ekstrapolacji wzorców poza domenę danych treningowych. Wiele algorytmów MO nie ma tej możliwości, ponieważ mają tendencję do ograniczania się do dziedziny, w której dane treningowe. Nie nadają się zatem do TS, których celem jest przewidywanie wyniku w przyszłości.

Inną ważną właściwością algorytmu TS jest możliwość wyznaczania przedziałów ufności. Chociaż jest to właściwość domyślna dla modeli TS, a większość modeli MI nie ma tej możliwości, ponieważ nie wszystkie są oparte na rozkładach statystycznych.

Nie należy zakładać, że do przewidywania TS stosuje się tylko proste metody statystyczne. Wcale tak nie jest. Jest wiele zaawansowane podejścia, które mogą być bardzo przydatne w szczególnych przypadkach. Uogólniona Autoregresyjna Warunkowa Heteroskedastyczność (GARCH), Bayesian i VAR to tylko niektóre z nich.

Istnieją również modele sieci neuronowych, które mogą być stosowane do szeregów czasowych, które wykorzystują opóźnione predyktory i mogą obsługiwać funkcje takie jak Neural Network Autoregressive (NNAR). Istnieją nawet modele szeregów czasowych zapożyczone z uczenia złożonego, szczególnie w rodzinie rekurencyjnych sieci neuronowych, takich jak sieci LSTM i GRU.

Metryka estymacji i diagnostyka resztek

Najczęściej szacowanymi metrykami do prognozowania są średnie RMS, które wielu wykorzystuje przy rozwiązywaniu problemów regresji:

  • MAPE, ponieważ jest niezależne od skali i przedstawia stosunek błędu do wartości rzeczywistych w procentach;
  • MASE, który pokazuje, jak dobrze prognoza wypada w porównaniu do średniej prognozy naiwnej.

Po dostosowaniu metody predykcji ważne jest, aby ocenić, jak dobrze jest ona w stanie uchwycić modele. Chociaż metryki szacowania pomagają określić, jak blisko wartości są równe wartościom rzeczywistym, nie oceniają one, czy model pasuje do TS. Resztki są dobrym sposobem, aby to ocenić. Gdy programista próbuje zastosować wzorce TS, może spodziewać się, że błędy będą zachowywać się jak "biały szum", ponieważ reprezentują to, czego model nie może uchwycić.

"biały szum" musi mieć następujące właściwości:

  1. Reszty są nieskorelowane (Acf = 0)
  2. Resztki mają rozkład normalny o zerowej średniej (nieobiektywny) i stałej wariancji.
  3. Jeśli brakuje którejś z tych dwóch właściwości, oznacza to, że model ma miejsce dla ulepszenia.
  4. Własność zerowej średniej można łatwo sprawdzić za pomocą kryterium T.
  5. Własności normalności i stałej wariancji są sprawdzane wizualnie za pomocą histogramu reszt lub odpowiedniego testu normalności jednoczynnikowej.

Model ARIMA

ARIMA, czyli model AutoRegressive Integrated Moving-Average, to jeden z najbardziej popularnych metody stosowane w prognozowaniu TS, głównie ze względu na autokorelację danych do tworzenia wysokiej jakości modeli.

Przy szacowaniu współczynników ARIMA podstawowym 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 wartości rzeczywistych z wartościami przewidywanymi. Jeśli obie krzywe są bliskie, można przyjąć, że model pasuje do analizowanego przypadku. Powinien on ujawnić wszelkie tendencje i sezonowość, jeśli takie istnieją.

Analiza reszt powinna pokazać, czy model pasuje: losowe resztki oznaczają, że jest dokładny. Dopasowanie ARIMA z parametrami (0,1,1) daje takie same wyniki jak wygładzanie wykładnicze, a zastosowanie parametrów (0,2,2) daje podwójne wyniki wygładzania wykładniczego.

Algorytmy szeregów czasowych w SQL Server

Można uzyskać dostęp do ustawień ARIMA w Excelu:

  1. Uruchom program Excel.
  2. Znajdź XL MINER na pasku narzędzi.
  3. Wybierz ARIMA z menu rozwijanego na wstążce.

Podsumuj cechy modelu ARIMA:

  1. ARIMA - autoregresyjna zintegrowana średnia ruchoma.
  2. Model predykcyjny stosowany w analizie szeregów czasowych.
  3. Składnia parametrów ARIMA : ARIMA (p, d, q) gdzie p = liczba terminów autoregresyjnych, d = liczba różnic sezonowych i q = liczba terminów średniej ruchomej.

Algorytmy w SQL Server

Wykonywanie predykcji krzyżowej jest jedną z istotnych cech szeregów czasowych w prognozowaniu problemów finansowych. W przypadku wykorzystania dwóch powiązanych szeregów, otrzymany model można wykorzystać do przewidywania wyników jednego szeregu na podstawie zachowania drugiego.

SQL Server 2008 posiada potężne nowe funkcje szeregów czasowych, które można poznać i wykorzystać. Narzędzie posiada łatwo dostępne dane TS, prosty w obsłudze interfejs do modelowania i replikowania funkcji algorytmu oraz okno objaśnień z linkiem do zapytań DMX po stronie serwera, tak, że możliwe jest zrozumieć, co się dzieje wewnętrznie.

Rynkowe szeregi czasowe to szeroki obszar, do którego można zastosować modele i algorytmy uczenia głębokiego. Banki, brokerzy i fundusze eksperymentują obecnie z wdrażaniem ich do analizy i przewidywania indeksów, kursów walutowych, kontraktów terminowych, cen kryptowalut, akcji rządowych i innych.

Podczas przewidywania szeregów czasowych sieć neuronowa znajduje przewidywalne wzorce poprzez badanie struktur rynkowych i trendów, a następnie udziela porad inwestorom. Sieci te mogą również pomóc w wykrywaniu anomalii, takich jak nieoczekiwane szczyty, spadki, zmiany trendu i przesunięcia poziomu. Wiele modeli sztuczna inteligencja Wykorzystywane do prognozowania finansowego.

Artykuły na ten temat