Jak radzić sobie z szeregami czasowymi, które zmieniają się w sezonowości lub innych wzorcach?

22

tło

Pracuję nad zestawem danych szeregów czasowych odczytów liczników energii. Długość serii różni się w zależności od metra - dla niektórych mam kilka lat, innych tylko kilka miesięcy itp. Wiele z nich wykazuje znaczną sezonowość, a często wiele warstw - w ciągu dnia, tygodnia lub roku.

Jedną z rzeczy, nad którymi pracowałem, jest grupowanie tych szeregów czasowych. Moja praca jest w tej chwili akademicka i chociaż przeprowadzam również inną analizę danych, mam konkretny cel, aby przeprowadzić grupowanie.

Wykonałem kilka wstępnych prac, w których obliczyłem różne funkcje (procent wykorzystany w weekendy w porównaniu do dnia tygodnia, procent wykorzystany w różnych blokach czasowych itp.). Następnie przeszedłem do korzystania z dynamicznego wypaczania czasu (DTW) w celu uzyskania odległości między różnymi seriami i grupowania w oparciu o wartości różnic, i znalazłem kilka artykułów z tym związanych.

Pytanie

Czy zmiana sezonowości w określonej serii spowoduje, że moje klastrowanie będzie nieprawidłowe? A jeśli tak, jak sobie z tym poradzić?

Obawiam się, że odległości uzyskane przez DTW mogą być mylące w przypadkach, gdy zmienił się wzór w szeregu czasowym. Może to prowadzić do nieprawidłowego grupowania.

W przypadku niejasności powyższe rozważ następujące przykłady:

Przykład 1

Miernik ma niskie odczyty od północy do 8 rano, odczyty następnie gwałtownie wzrastają przez następną godzinę i pozostają wysokie od 9 rano do 17:00, a następnie gwałtownie spadają w ciągu następnej godziny, a następnie pozostają niskie od 18:00 do północy. Miernik kontynuuje ten wzór konsekwentnie codziennie przez kilka miesięcy, ale następnie zmienia się na wzór, w którym odczyty po prostu pozostają na stałym poziomie przez cały dzień.

Przykład 2

Licznik pokazuje w przybliżeniu taką samą ilość energii zużywanej każdego miesiąca. Po kilku latach zmienia się w schemat, w którym zużycie energii jest wyższe w miesiącach letnich, zanim powróci do zwykłej ilości.

Możliwe kierunki

  • Zastanawiałem się, czy mogę kontynuować porównywanie całych szeregów czasowych, ale podzielę je i rozważę jako osobną serię, jeśli wzorzec ulegnie znacznej zmianie. Jednak aby to zrobić, musiałbym być w stanie wykryć takie zmiany. Po prostu nie wiem, czy jest to odpowiedni sposób lub praca z danymi.
  • Rozważałem także podzielenie danych i rozważenie ich jako wielu oddzielnych szeregów czasowych. Na przykład, każdą kombinację dzień / metr można traktować jako osobną serię. Musiałbym jednak zrobić podobnie, gdybym chciał wziąć pod uwagę wzorce tygodniowe / miesięczne / roczne. Myślę, że to zadziałałoby, ale jest to potencjalnie dość uciążliwe i nie chciałbym iść tą ścieżką, jeśli istnieje lepszy sposób, za którym tęsknię.

Dalsze uwagi

Są to rzeczy, które pojawiły się w komentarzach lub rzeczy, o których myślałem z powodu komentarzy, które mogą być istotne. Umieszczam je tutaj, aby ludzie nie musieli czytać wszystkiego, aby uzyskać odpowiednie informacje.

  • Pracuję w Pythonie, ale mam rpy dla tych miejsc, w których R jest bardziej odpowiedni. Jednak niekoniecznie szukam odpowiedzi w języku Python - jeśli ktoś ma praktyczną odpowiedź na to, co należy zrobić, z przyjemnością sam ustalę szczegóły implementacji.
  • Mam dużo pracującego „wstępnego szkicu” kodu - wykonałem kilka testów DTW, wykonałem kilka różnych rodzajów grupowania itp. Myślę, że w dużej mierze rozumiem kierunek, w którym podążam, i to, co „ m naprawdę szukanie ma związek z tym, jak przetwarzam moje dane przed znalezieniem odległości, uruchomieniem grupowania itp. Biorąc to pod uwagę, podejrzewam, że odpowiedź byłaby taka sama, niezależnie czy odległości między seriami są obliczane za pomocą DTW, czy prostszej odległości euklidesowej (ED).
  • Uważam, że te artykuły są szczególnie pouczające na temat szeregów czasowych i DTW i mogą być pomocne, jeśli potrzebne jest pewne zaplecze w obszarze tematycznym: http://www.cs.ucr.edu/~eamonn/selected_publications.htm
Jo Douglass
źródło
+1 Bardzo fajne pytanie i wspaniale jest zobaczyć tyle entuzjazmu! Myślę, że mógłbyś trochę uściślić swoje pytanie, więc bardziej zachęca innych do przeczytania, a następnie udzielenia odpowiedzi.
Rubens
@Rubens Thanks! Kiedy wieczorem wrócę do domu, przerobię to. Mogę zobaczyć, gdzie warto podać więcej informacji o tym, jak doszedłem do tego punktu i dlaczego. Martwiłem się, że będzie za długo, ale oddzielę tło i zadam trochę więcej pytań, aby uniknąć nieczytelności.
Jo Douglass,
To może nie być pytanie o „czystą statystykę”, ale wymaga odpowiedzi na czystą statystykę. Będziesz walczył, dopóki nie będziesz mógł myśleć o tym w kategoriach czysto statystycznych.
Spacedman,
@Spacedman - Z zadowoleniem przyjmuję odpowiedzi w dowolny sposób, jaki ludzie uważają za najlepszy sposób na udzielenie odpowiedzi, z zastrzeżeniem, że mogę mieć dalsze pytania, jeśli odpowiedź jest ciężka na formułach lub odniesieniach do pojęć statystycznych, których jeszcze nie rozumiem.
Jo Douglass,
Jo, czy znalazłeś właściwą odpowiedź na swoje pytanie? Jestem w tej samej sytuacji i potrzebuję pomocy. Dziękuję
LSola,

Odpowiedzi:

14

Po przeczytaniu twojego pytania zainteresowałem się tematem grupowania szeregów czasowych i dynamicznego dopasowywania czasu (DTW) . Przeprowadziłem zatem ograniczone wyszukiwanie i opracowałem podstawowe zrozumienie (dla mnie) oraz następujący zestaw odnośników IMHO (dla ciebie). Mam nadzieję, że okaże się to przydatne, ale pamiętaj, że celowo pominąłem prace badawcze, ponieważ bardziej interesowały mnie praktyczne aspekty tego tematu.

Zasoby:

Aleksandr Blekh
źródło
1
Wiele z nich to zasoby, na które patrzyłem - zaimplementowałem zmodyfikowaną wersję pracy, na przykład w punktach 2 i 4 - więc prawdopodobnie jesteśmy teraz na tej samej stronie. Zdecydowana większość tego, co wiem, oparta jest na artykułach Eamonn Keogh lub opartych na nich artykułach. Ale jest tu kilka, których nie przeczytałem, a ten dotyczący grupowania serii czasowych rowerów jest interesujący - dzięki! Nie widzę niczego, co mogłoby konkretnie odpowiedzieć na moje pytanie, ale zaznacz to, jeśli coś przeoczyłem podczas czytania.
Jo Douglass,
1
Ponadto, jeśli nadal uważasz to za interesujące, dokumenty Keogha są naprawdę warte przeczytania. Są zaskakująco łatwe do odczytania i dość praktyczne, ponieważ koncentrują się na użyciu wielu zestawów danych i zapewniają wystarczającą ilość informacji, aby ktoś mógł odtworzyć wszystkie eksperymenty. Najnowszy jest interesujący i właśnie przez to pracowałem, kiedy moje pytanie zostało odsunięte na bok. cs.ucr.edu/~eamonn/selected_publications.htm
Jo Douglass
1
@JoDouglass: Nie ma za co! Nie miałem zamiaru odpowiadać na twoje pytanie bezpośrednio (z powodu mojej ograniczonej wiedzy na ten temat), ale miałem nadzieję, że będzie to pomocne, co wydaje się być prawdą. Dziękuję za miłe komentarze i referencje - przejrzę gazety i spróbuję znaleźć lepszy pomysł. Jest tyle do nauczenia się, że to trochę przytłaczające.
Aleksandr Blekh
1
Przytłaczająca jest racja, przez pewien czas kopałam się za wybranie tego tematu! Wydaje mi się, że się tam dostaję - i bardzo ciekawie się o tym dowiedziałem. Mam wiele rzeczy gotowych do działania jako rodzaj przybliżonych wersji tego, co muszę zrobić, i myślę, że bardziej chodzi o zastanowienie się, jak przetwarzać moje dane przed uruchomieniem ich w moich modelach. Link do udostępniania rowerów jest dla mnie interesujący, ponieważ jest to pierwszy raz, kiedy dyskutowałem o uśrednianiu szeregów czasowych od czasu przeczytania ostatniego artykułu Keogha, o którym wspomniałem.
Jo Douglass,
1
@JoDouglass: Kiedy powiedziałem „przytłaczające”, miałem na myśli całą dziedzinę nauki o danych (w szczególności AI / ML i statystyki). Jestem jeszcze znaleźć zasobu , który prezentuje wysoki poziom dyskusji na temat różnych podejść i / lub metod jak motywy , zintegrowany w kompleksowy , a jednocześnie oszczędnego , ram .
Aleksandr Blekh
4

Jeśli chcesz wydobywać sezonowe wzorce, przyjrzyj się autokorelacji . Jeśli szukasz modelu, który może nauczyć się wzorców sezonowych i tworzyć na ich podstawie prognozy, to Holt-Winters to dobry początek, a ARIMA byłaby dobrym rozwiązaniem. Tutaj [pdf] jest samouczek, który oderwał mnie od ziemi.

TheGrimmScientist
źródło
Praca jest (na razie) akademicka, a nie czysto praktyczna. Prognozy mogę wykonać bardzo późno w przyszłości lub w przyszłości, ale teraz bardziej interesuje mnie badanie przeszłych danych. Grupowanie jest celem samym w sobie, a także niektórymi pomysłami, które chcę zbadać w przeszłości.
Jo Douglass,
Przepraszamy, naciśnij przedwcześnie Enter. Do pewnego stopnia przyjrzałem się autokorelacji i sprawdziłem ją na podzbiorze moich danych, ale nie było dla mnie jasne, co mogę z tego wyciągnąć. Dane są dość głośne. Wzorce sezonowości są czasami dość oczywiste na wizualizacji, ale niedokładne w ich harmonogramie - więc mogę szukać podobnych wzorców, ale nie według ładnego, równego harmonogramu. Powiedziano mi, że autokorelacja może być problematyczna w przypadku takich danych, ale cieszę się, że mogę rzucić okiem, jeśli jest w tym wartość. Nie chcę tylko znaleźć sezonowości, ale zrozumienie tego jest celem.
Jo Douglass,
Przećwicz ten samouczek co najmniej do wersji 2.5. Wykorzystuje R, który jest szczególnie dobry dla twojego środowiska akademickiego. Nauczy Cię autokorelacji, która brzmi dokładnie tak, jak szukasz (nie wiesz, czy to nie pasowało, ponieważ nie wiedziałeś, na co patrzysz, czy dane są zbyt głośne). Jeśli problemem jest hałas, wygładzanie wykładnicze jest jednym ze sposobów, aby temu zaradzić, czego nauczymy w ramach modelu Holta-zimy. Nawet jeśli to wszystko nie da ci odpowiedzi, z pewnością sprawi, że Twój następny krok będzie wyraźniejszy.
TheGrimmScientist
Przeczytałem samouczek, ale głównie dotyczy on rzeczy, które już znam. Właściwie pracuję w Pythonie i jestem trochę za daleko, aby przejść do R, chociaż w pewnym momencie zamierzałem pobrać rpy, na wypadek, gdyby były pewne rzeczy, których nie mogłem znaleźć w żadnej bibliotece Pythona. Ponownie napisałem swoje pytanie na wypadek, gdyby to pomogło - jak mówię, grupowanie jest celem samym w sobie, nie szukam zupełnie innego kierunku. Obawiam się, że samouczek nie Naprawdę odpowiedz na moje pytanie.
Jo Douglass,