Kliknij, aby dowiedzieć się więcej o autorze Maarita Widmanna.
Kompletna aplikacja do analizy szeregów czasowych obejmuje kroki opisane w a Nauka danych cykl od dostępu do przekształcania, modelowania, oceny i wdrażania danych szeregów czasowych. Jednakże w przypadku danych szeregów czasowych konkretne zadania na tych etapach różnią się w porównaniu z danymi przekrojowymi. Na przykład dane przekrojowe są gromadzone jako migawka jednego obiektu w jednym momencie, podczas gdy dane szeregów czasowych są gromadzone poprzez obserwację tego samego obiektu w pewnym okresie czasu. Regularne wzorce w danych szeregów czasowych mają swoją specyficzną terminologię i określają wymagane przetwarzanie wstępne przed przejściem do modelowania szeregów czasowych. Szeregi czasowe można modelować za pomocą wielu typów modeli, ale określone modele szeregów czasowych, takie jak model ARIMA, wykorzystują strukturę czasową pomiędzy obserwacjami.
W tym artykule przedstawiamy najczęstsze zadania podczas tworzenia aplikacji opartej na szeregach czasowych. Na koniec teorię wcielamy w praktykę budując przykładową aplikację w Platformie Analytics.
Dostęp do szeregów czasowych
Szeregi czasowe mają różne źródła i zastosowania: dzienne dane sprzedażowe do przewidywania popytu, roczne dane makroekonomiczne do długoterminowego planowania politycznego, dane z czujników z inteligentnego zegarka do analizy sesji treningowej i wiele innych. Wszystkie te szeregi czasowe różnią się między innymi szczegółowością, regularnością i czystością: Możemy być pewni, że mamy wartość PKB dla naszego kraju na ten rok, a także na kolejne 10 lat, ale nie możemy zagwarantować, że Czujnik naszego inteligentnego zegarka działa stabilnie podczas każdego ćwiczenia i w każdej temperaturze. Może się również zdarzyć, że dane dotyczące szeregów czasowych nie są dostępne w regularnych odstępach czasu, lecz można je zbierać jedynie w przypadku zdarzeń losowych, takich jak infekcje chorobowe lub spontaniczne wizyty klientów. Cechą wspólną wszystkich tego rodzaju danych szeregów czasowych jest to, że są one zbierane z tego samego źródła w czasie.
Regularyzowanie i czyszczenie szeregów czasowych
Gdy już mamy dane szeregów czasowych, następnym krokiem jest zapewnienie ich jednakowych odstępów, z odpowiednią szczegółowością, ciągłością i przejrzystością. Wymagane zadania zależą od pierwotnego kształtu danych, a także od naszego analityka zamiar. Na przykład, jeśli planujemy tygodniową promocję produktu, mogą nas interesować bardziej szczegółowe dane, niż gdybyśmy chcieli uzyskać przegląd sprzedaży jakiegoś produktu.
Sortowanie
Szeregi czasowe należy posortować według czasu. Kiedy dzielisz dane na zbiory uczące i testowe, pamiętaj o zachowaniu struktury czasowej pomiędzy rekordami, pobierając dane od góry/dołu do testowania/uczenia. Jeśli Twoje dane zawierają więcej niż jeden rekord na sygnaturę czasową, musisz je zagregować według sygnatury czasowej. Na przykład, jeśli masz wiele zamówień dziennie i interesuje Cię dzienna sprzedaż, musisz zsumować sprzedaż z każdego dnia. Ponadto, jeśli interesują Cię szeregi czasowe z inną szczegółowością niż obecnie dostępna w danych (na przykład sprzedaż miesięczna zamiast dziennej), możesz dalej agregować dane z preferowaną szczegółowością.
Brakujące wartości
Jeśli brakuje jakichś znaczników czasu, należy je wprowadzić do szeregu czasowego, tak aby był równomiernie rozłożony. Czasami brakujące rekordy są częścią dynamiki szeregu czasowego (na przykład giełda jest zamykana w piątek i otwierana w poniedziałek).
Po wprowadzeniu do danych brakujących znaczników czasu oczywiście brakuje odpowiednich wartości. Brakujące wartości można przypisać na przykład za pomocą interpolacji liniowej lub wartości średniej ruchomej. Pamiętaj jednak, że najlepsza technika przypisywania brakujących wartości zależy od regularnej dynamiki danych. Na przykład, jeśli sprawdzasz tygodniową sezonowość w danych dziennych i brakuje wartości dotyczącej jednej soboty, wówczas prawdopodobnie najlepszym zamiennikiem będzie wartość z ostatniej soboty. Jeżeli brakujące wartości nie zostały przypadkowo utracone, jak np. brakujące ceny zamknięcia giełdy w weekendy, można je zastąpić stałą wartością, która w tym przypadku będzie wynosić 0. Z drugiej strony, jeśli brakujące wartości są losowe i występują wystarczająco daleko w przeszłości, możesz użyć danych po brakującej wartości i zignorować starsze dane.
Nieregularne wzory
Dobrym sposobem radzenia sobie z szybkimi wahaniami i wartościami odstającymi jest wygładzenie danych. Można zastosować kilka technik, np średnia ruchoma i wygładzanie wykładnicze. Ponadto obcięcie wartości leżących poza wąsami wykresu pudełkowego wygładza dane. Należy pamiętać, że silna sezonowość danych może prowadzić do powszechnego stosowania wykresu pudełkowego, dlatego w celu wykrycia wartości odstających lepiej jest użyć warunkowego wykresu pudełkowego.
Czasami jednak szereg czasowy pokazuje po prostu bardzo nieregularne zjawisko! Można wówczas spróbować ujednolicić szereg czasowy, wyodrębniając z niego podzbiór, np. uwzględniając sprzedaż tylko jednego produktu zamiast sprzedaży całego supermarketu lub grupując dane.
Odkrywanie i przekształcanie szeregów czasowych
W tym momencie mamy dane szeregów czasowych w kształcie odpowiednim do ich wizualnej i numerycznej eksploracji. Różne wykresy i statystyki ujawniają długoterminowe i krótkoterminowe wzorce oraz zależności czasowe w szeregach czasowych, które możemy wykorzystać, aby lepiej zrozumieć jego dynamikę i przewidzieć jego przyszły rozwój.
Wizualna eksploracja szeregów czasowych
Podstawowym wykresem do eksploracji szeregów czasowych jest wykres liniowy (Rysunek 3), który pokazuje możliwy kierunek, regularne i nieregularne wahania, wartości odstające, luki lub punkty zwrotne w szeregu czasowym. Jeśli zaobserwujesz regularny wzorzec w swoich szeregach czasowych, taki jak roczna sezonowość sprzedaży napojów, możesz następnie sprawdzić każdy cykl sezonowy (rok) oddzielnie na wykresie sezonowym (Rysunek 3). Na wykresie sezonowym łatwo można zobaczyć np. czy lipiec był w tym roku miesiącem sprzedaży silniejszym niż rok wcześniej, czy też miesięczna sprzedaż rośnie z roku na rok.
Jeśli interesuje Cię, co dzieje się w obrębie pór roku, na przykład jaka jest mediana sprzedaży w miesiącach letnich oraz jak bardzo i w jakim kierunku zmienia się sprzedaż w każdym miesiącu, możesz sprawdzić tego rodzaju dynamikę na warunkowym wykresie pudełkowym (rysunek 3). Jeszcze innym przydatnym wykresem do badania szeregów czasowych jest wykres opóźnienia (rysunek 3). Wykres opóźnienia pokazuje związek między wartościami bieżącymi i wartościami przeszłymi, na przykład sprzedaż dzisiejsza i sprzedaż tydzień wcześniej.
Klasyczna dekompozycja szeregów czasowych
Klasyczna dekompozycja, tj. rozkład szeregu czasowego na jego trend, sezonowość i resztę, stanowi dobry punkt odniesienia do prognozowania. Pozostała część szeregu czasowego, reszta, ma być nieruchomyi można je prognozować na przykład za pomocą modelu ARIMA. Należy jednak pamiętać, że jeśli szereg reszt nie jest stacjonarny, mogą być wymagane pewne dodatkowe przekształcenia, takie jak różnicowanie pierwszego rzędu lub transformacja logarytmiczna pierwotnego szeregu czasowego.
Po pierwsze, jeśli szereg czasowy wskazuje kierunek lub trend, można go zdeprecjonować, na przykład dopasowując model regresji do danych lub obliczając wartość średniej ruchomej.
Po drugie, jeśli szereg czasowy wykazuje regularne wahania – sezonowość – można go do tego dostosować. Opóźnienie, w którym występuje główna sezonowość, można znaleźć na wykresie autokorelacji szeregów czasowych. Na przykład, jeśli zaobserwujesz szczyt z opóźnieniem 7 i masz dane dzienne, wówczas dane będą miały tygodniową sezonowość. Sezonowość można dostosować, różnicując dane w miejscu opóźnienia, w którym występuje główny skok. Jeśli chcesz skorygować drugą sezonowość danych, możesz to zrobić powtarzając procedurę dla skorygowanych (zróżnicowanych) szeregów czasowych.
Wreszcie, gdy osiągniesz stacjonarny szereg czasowy, który jest gotowy do modelowania na przykład za pomocą modelu ARIMA, możesz przeprowadzić ostateczną kontrolę za pomocą na przykład Test Ljung-boxa za stacjonarność.
Modelowanie i ocena szeregów czasowych
Teraz przechodzimy do modelowania pozostałej części szeregu czasowego, która zawiera jego nieregularną dynamikę. Możemy to zrobić z modelami ARIMA, uczenie maszynowe modele, sieci neuronowe i wiele ich odmian. Często modelujemy pozostałą część szeregu czasowego za pomocą tych modeli, ponieważ jest ona stacjonarna. Jednak dekompozycja szeregów czasowych nie zawsze jest konieczna, ponieważ niektóre modele, jak np. sezonowy model ARIMA, sprawdzają się również przy modelowaniu niestacjonarnych szeregów czasowych.
Poniżej zebraliśmy kilka właściwości tych różnych technik modelowania, ich podobieństwa i różnice, abyś mógł wybrać najlepszą dla swojego przypadku użycia. Pamiętaj także, że przydatne jest trenowanie wielu modeli, a nawet budowanie z nich zestawu!
Modele ARIMY
ARIMA Model (Autoregressive Integrated Moving Average) to model regresji liniowej pomiędzy wartościami bieżącymi i przeszłymi (część AR), a także pomiędzy bieżącymi i przeszłymi błędami prognoz (część MA). Jeśli model ma niezerową część I, wówczas dane są różnicowane, aby uczynić go stacjonarnym. Podstawowe modele ARIMA zakładają, że szeregi czasowe są stacjonarne, a stacjonarne szeregi czasowe nie mają przewidywalnych wzorców w dłuższej perspektywie. Spadek trafności prognoz długoterminowych widać w rosnących przedziałach ufności prognoz. Posiadanie większej ilości danych nie zawsze jest lepsze w przypadku uczenia modeli ARIMA: duże zbiory danych mogą sprawić, że szacowanie parametrów modelu ARIMA będzie czasochłonne, a także wyolbrzymi różnicę między prawdziwym procesem a procesem modelowym.
Modele uczenia maszynowego
Modele uczenia maszynowego wykorzystują opóźnione wartości jako kolumny predyktorów i ignorują strukturę czasową między kolumną docelową a kolumnami predyktorów. Modele uczenia maszynowego mogą również identyfikować długoterminowe wzorce i punkty zwrotne w danych, pod warunkiem, że dane szkoleniowe zawierają wystarczającą ilość danych, aby ustalić te wzorce. Ogólnie rzecz biorąc, im więcej nieprawidłowości wykazują dane, tym więcej danych potrzeba do wytrenowania modelu. W przypadku stosowania modelu uczenia maszynowego zaleca się modelowanie reszty. W przeciwnym razie możesz zbudować model, który jest bardziej skomplikowany niż klasyczny model dekompozycji, ale który tak naprawdę nie uczy się niczego nowego!
Wskazówki dotyczące wyboru modelu
Po pierwsze, niektóre zjawiska są trudne do przewidzenia i w takim przypadku często warto sięgnąć po prostszy model i nie inwestować środków w modelowanie czegoś, czego nie da się dokładnie przewidzieć.
Po drugie, wydajność modelu nie jest jedynym kryterium. Jeśli ważne decyzje opierają się na wynikach modelu, jego interpretowalność może być ważniejsza niż nieco lepsze działanie. To powiedziawszy, sieć neuronowa może przegrać z prostym klasycznym modelem dekompozycji, chociaż prognozuje nieco lepiej.
Po trzecie, dodanie do modelu zmiennych objaśniających może poprawić dokładność prognozy. Jednak w takim modelu należy również prognozować zmienne objaśniające, a rosnąca złożoność modelu nie zawsze jest warta większej dokładności. Czasami do podjęcia decyzji wystarczą przybliżone szacunki: jeśli kwoty wysyłki są obliczane w dziesiątkach i setkach, wówczas prognozowany popyt również nie musi być bardziej szczegółowy.
Ocena modelu
Następnym krokiem po wytrenowaniu modelu jest jego ocena. W przypadku prognozowania w próbie zbiór testowy sam w sobie jest zbiorem uczącym, więc proces modelowy jest dopasowywany do danych użytych do uczenia modelu. W przypadku prognozowania poza próbą zestaw testowy następuje po zestawie szkoleniowym w czasie.
Jedną z zalecanych miar błędu do oceny modelu szeregów czasowych jest średni bezwzględny błąd procentowy (MAPE), gdyż podaje błąd w skali uniwersalnej, jako procent wartości rzeczywistej. Jeśli jednak prawdziwą wartością jest zero, metryka ta nie jest zdefiniowana, a wówczas także inne metryki błędu, takie jak pierwiastek błędu średniokwadratowego (RMSE), zrobię. Często jednak zaleca się, aby NIE używać R-kwadrat. Metryka R-kwadrat nie pasuje do kontekstu analizy szeregów czasowych, ponieważ skupia się na przewidywaniu przyszłej systematycznej zmienności kolumny docelowej, zamiast modelować całą zmienność w przeszłości.
Prognozowanie i rekonstrukcja szeregów czasowych
Prawie jesteśmy na miejscu! Ostatnim krokiem jest prognozowanie przyszłych wartości i rekonstrukcja sygnału.
Dynamiczne prognozowanie
Jeśli masz model, który nie może zapewnić dokładnych prognoz w dłuższej perspektywie, wdrożenie dynamiczne często poprawia dokładność prognozy poza próbą. W przypadku wdrażania dynamicznego prognozowany jest tylko jeden punkt w przyszłości, a dane z przeszłości są aktualizowane o tę wartość prognozy w celu wygenerowania kolejnej prognozy (rysunek 5).
Przywracanie trendów i sezonowości
Wreszcie, jeśli przed prognozowaniem dokonamy dekompozycji szeregów czasowych, musimy przywrócić prognozom trend i/lub sezonowość. Jeśli dostosujemy sezonowość poprzez różnicowanie danych, rekonstrukcję sygnału zaczniemy dodając wartości w opóźnieniu, w którym występuje sezonowość. Na przykład, gdybyśmy mieli dane dzienne y, w których zastosowalibyśmy różnicowanie sezonowe w opóźnieniu 7 (sezonowość tygodniowa), przywrócenie tej sezonowości wymagałoby następujących obliczeń do wartości prognozowanych yt+1, yt+2, ..., yt+h :
gdzie tjest ostatnim punktem czasowym w danych szkoleniowych, oraz h to horyzont prognozy.
Aby przywrócić drugą sezonowość, powtórzylibyśmy krok opisany powyżej dla przywróconego szeregu czasowego. Gdybyśmy chcieli przywrócić składnik trendu do szeregu czasowego, zastosowalibyśmy model regresji reprezentujący trend do przywróconego szeregu czasowego.
Kompletna aplikacja szeregów czasowych na platformie analitycznej
Na koniec przyjrzyjmy się, jak zastosować te kroki w praktyce, korzystając z naszej platformy analitycznej. Przepływ pracy Dostęp do przekształcania i modelowania szeregów czasowych (dostępne w Hubie) na rysunku 6 przedstawia etapy od dostępu do czyszczenia, wizualnego eksplorowania, dekomponowania i modelowania szeregów czasowych. Do niektórych z tych zadań używamy składniki szeregów czasowych które hermetyzują przepływy pracy jako funkcjonalności specyficzne dla szeregów czasowych: agreguj dane z wybraną szczegółowością, przeprowadzaj klasyczną dekompozycję i nie tylko.
W tym przykładzie używamy Próbka – Supermarket dane dostarczone przez Żywy obraz. W naszej analizie skupiamy się na zamówieniach wszystkich produktów z lat 2014-2017 – łącznie 9994 rekordy. Przetwarzanie wstępne rozpoczynamy od przekształcenia danych w szeregi czasowe, obliczając całkowitą dzienną sprzedaż. Teraz mamy tylko jedną wartość dziennie, ale brakuje niektórych dni, ponieważ w tych dniach nie złożono żadnych zamówień. Dlatego wprowadzamy te dni do szeregu czasowego i zastępujemy brakujące wartości sprzedaży stałą wartością 0. Następnie dane agregujemy na poziomie miesięcznym i w dalszej analizie uwzględniamy średnią sprzedaż w każdym miesiącu.
W celu eksploracji wizualnej agregujemy również dane na poziomie rocznym i dowiadujemy się, że na początku roku 2015 nastąpił punkt zwrotny, jak pokazuje wykres liniowy po prawej stronie na Ryc. 7. Wykres liniowy po lewej stronie pokazuje roczną sezonowość danych: istnieją dwa regularne szczyty na koniec każdego roku i niższy szczyt na początku każdego roku. Wykrywamy również roczną sezonowość danych, jak pokazuje główny skok w opóźnieniu 12 na wykresie ACF po lewej stronie. Rozkładamy szereg czasowy na jego trend, sezonowość i resztę, a składowe te pokazano na wykresie liniowym pośrodku rysunku 7. Wykres ACF po prawej stronie nie pokazuje znaczącej autokorelacji w szeregu reszt.
Następnie modelujemy szereg rezydualny średniej miesięcznej sprzedaży za pomocą modelu ARIMA. Po różnicowaniu z opóźnieniem 12 długość szeregu czasowego wynosi 36 obserwacji. Poszukujemy najlepszego modelu z komponentem Auto ARIMA Learner z maksymalnym zamówieniem 4 dla części AR i MA oraz maksymalnym zamówieniem 1 dla części I. Najbardziej wydajny model oparty na Odpowiednie kryterium informacyjne wynosi ARIMA (0, 1, 4), a wynikowy MAPE oparty na prognozach w próbie wynosi 1.153.
Na koniec oceniamy dokładność prognozy modelu poza próbą. Przepływ pracy Prognozowanie i rekonstrukcja szeregów czasowych (dostępny w Hubie) na rysunku 8 przedstawiono sposób prognozowania dziennej sprzedaży w roku 2017 na podstawie danych miesięcznych z lat 2014-2016 (24 obserwacje) oraz zwycięski model ARIMA (0,1,4) z wykorzystaniem dynamicznego wdrożenia zbliżać się. Następnie rekonstruujemy sygnał, w tym przypadku przywracamy trend i roczną sezonowość do wartości prognozowanych (średnie wartości sprzedaży z 12 miesięcy). Porównujemy wartości rzeczywiste i prognozowane i uzyskujemy MAPE 0.336.
Podsumowanie
Szeregi czasowe, niezależnie od tego, czy są to dane z czujników pokazujące zachowanie maleńkiego obiektu nanosekunda po nanosekundie, dane makroekonomiczne z XX wieku, czy coś pośredniego, wymagają specyficznych technik analitycznych, które mają zastosowanie do etapów uzyskiwania dostępu, manipulacji i modelowania.
W tym artykule przedstawiliśmy podstawy technik analitycznych dla szeregów czasowych, które pomogą Ci rozpocząć pracę z danymi szeregów czasowych.
Referencje
[1] Chambers, John C., Satinder K. Mullick i Donald D. Smith. Jak wybrać właściwą technikę prognozowania. Uniwersytet Harvarda, Absolwent Szkoły Administracji Biznesu, 1971.
[2] Hyndman, Rob J. i George Athanasopoulos. Prognozowanie: zasady i praktyka. OTexty, 2018.
Źródło: https://www.dataversity.net/building-a-time-series-analytic-application/
- bezwzględny
- Dodatkowy
- analiza
- analityka
- Zastosowanie
- aplikacje
- AR
- artykuł
- samochód
- Podstawy
- Benchmark
- BEST
- Napoje
- ciało
- Pudełko
- budować
- Budowanie
- biznes
- Sprzątanie
- Kolumna
- wspólny
- składnik
- pewność siebie
- kraje
- Aktualny
- dane
- dzień
- Kreowanie
- oprogramowania
- choroba
- Szacunki
- wydarzenie
- Ćwiczenie
- eksploracja
- Postać
- W końcu
- i terminów, a
- dopasować
- Skupiać
- Piątek
- przyszłość
- PKB
- Ogólne
- George
- dobry
- absolwent
- Prowadzenie
- harvard
- Harvard University
- W jaki sposób
- How To
- HTTPS
- Setki
- zidentyfikować
- obraz
- zakażenia
- Informacja
- IT
- lipiec
- duży
- prowadzić
- UCZYĆ SIĘ
- uczeń
- nauka
- poziom
- Linia
- długo
- uczenie maszynowe
- poważny
- rynek
- Metryka
- model
- modelowanie
- Poniedziałek
- dane miesięczne
- miesięcy
- ruch
- sieć
- sieci
- Nerwowy
- sieci neuronowe
- sieci neuronowe
- otwiera
- zamówienie
- Zlecenia
- Inne
- Wzór
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- planowanie
- Platforma
- przepowiednia
- Produkt
- Produkty
- promocja
- dokumentacja
- regresja
- Relacje
- Zasoby
- Efekt
- sole
- Skala
- Szkoła
- wybrany
- rozsądek
- Serie
- zestaw
- Wysyłka
- Prosty
- mały
- mądry
- Migawka
- So
- początek
- rozpoczęty
- statystyka
- stany magazynowe
- Giełda Papierów Wartościowych
- składane
- lato
- wsparcie
- Żywy obraz
- cel
- test
- Podstawy
- Przyszłość
- czas
- Top
- Trening
- Transformacja
- uniwersalny
- uniwersytet
- wartość
- Oglądaj
- tydzień
- tygodniowy
- Co to jest
- Wikipedia
- w ciągu
- Praca
- workflow
- trening
- wartość
- rok
- lat
- zero