Czy istnieją udokumentowane algorytmy rozdzielające sekcje danego zestawu danych na różne krzywe najlepszego dopasowania?
Na przykład większość ludzi patrząc na ten wykres danych z łatwością podzieliłby go na 3 części: odcinek sinusoidalny, odcinek liniowy i odwrotny odcinek wykładniczy. W rzeczywistości zrobiłem ten konkretny z sinusoidą, linią i prostą formułą wykładniczą.
Czy istnieją algorytmy wyszukiwania takich części, które można następnie osobno dopasować do różnych krzywych / linii, aby stworzyć rodzaj złożonej serii najlepiej dopasowanych podzbiorów danych?
Zauważ, że chociaż przykład ma końce segmentów prawie w jednej linii, niekoniecznie tak będzie; może również nastąpić nagły wstrząs wartości przy odcięciu segmentu. Być może te przypadki będą łatwiejsze do wykrycia.
Aktualizacja: Oto obraz niewielkiej ilości rzeczywistych danych:
Aktualizacja 2: oto niezwykle mały zbiór danych w świecie rzeczywistym (tylko 509 punktów danych):
4,53,53,53,53,58,56,52,49,52,56,51,44,39,39,39,37,33,27,21,18,12,19,30,45,66,92,118,135,148,153,160,168,174,181,187,191,190,191,192,194,194,194,193,193,201,200,199,199,199,197,193,190,187,176,162,157,154,144,126,110,87,74,57,46,44,51,60,65,66,90,106,99,87,84,85,83,91,95,99,101,102,102,103,105,110,107,108,135,171,171,141,120,78,42,44,52,54,103,128,82,103,46,27,73,123,125,77,24,30,27,36,42,49,32,55,20,16,21,31,78,140,116,99,58,139,70,22,44,7,48,32,18,16,25,16,17,35,29,11,13,8,8,18,14,0,10,18,2,1,4,0,61,87,91,2,0,2,9,40,21,2,14,5,9,49,116,100,114,115,62,41,119,191,190,164,156,109,37,15,0,5,1,0,0,2,4,2,0,48,129,168,112,98,95,119,125,191,241,209,229,230,231,246,249,240,99,32,0,0,2,13,28,39,15,15,19,31,47,61,92,91,99,108,114,118,121,125,129,129,125,125,131,135,138,142,147,141,149,153,152,153,159,161,158,158,162,167,171,173,174,176,178,184,190,190,185,190,200,199,189,196,197,197,196,199,200,195,187,191,192,190,186,184,184,179,173,171,170,164,156,155,156,151,141,141,139,143,143,140,146,145,130,126,127,127,125,122,122,127,131,134,140,150,160,166,175,192,208,243,251,255,255,255,249,221,190,181,181,181,181,179,173,165,159,153,162,169,165,154,144,142,145,136,134,131,130,128,124,119,115,103,78,54,40,25,8,2,7,12,25,13,22,15,33,34,57,71,48,16,1,2,0,2,21,112,174,191,190,152,153,161,159,153,71,16,28,3,4,0,14,26,30,26,15,12,19,21,18,53,89,125,139,140,142,141,135,136,140,159,170,173,176,184,180,170,167,168,170,167,161,163,170,164,161,160,163,163,160,160,163,169,166,161,156,155,156,158,160,150,149,149,151,154,156,156,156,151,149,150,153,154,151,146,144,149,150,151,152,151,150,148,147,144,141,137,133,130,128,128,128,136,143,159,180,196,205,212,218,222,225,227,227,225,223,222,222,221,220,220,220,220,221,222,223,221,223,225,226,227,228,232,235,234,236,238,240,241,240,239,237,238,240,240,237,236,239,238,235
Oto, na wykresie, z przybliżoną pozycją niektórych znanych krawędzi elementów w świecie rzeczywistym zaznaczonych kropkowanymi liniami, luksus, którego normalnie nie będziemy mieć:
Jedną z naszych luksusów jest jednak spojrzenie z perspektywy czasu: dane w moim przypadku nie są szeregami czasowymi, ale są raczej powiązane przestrzennie; sensowne jest analizowanie całego zestawu danych (zwykle 5000–15000 punktów danych) jednocześnie, a nie w sposób ciągły.
źródło
Odpowiedzi:
Moją interpretacją tego pytania jest to, że PO szuka metodologii, które pasowałyby do kształtu (przykładów) podanych przykładów, a nie resztek HAC. Ponadto pożądane są zautomatyzowane procedury, które nie wymagają znaczącej interwencji człowieka ani analityka. Box-Jenkins może nie być odpowiedni, pomimo nacisku w tym wątku, ponieważ wymagają znacznego zaangażowania analityków.
Istnieją moduły R dla tego typu dopasowywania wzorców bez opartego na momencie. Grupowanie dystrybucji permutacji jest techniką dopasowywania wzorców opracowaną przez naukowca z Instytutu Maxa Plancka, która spełnia określone przez ciebie kryteria. Jego zastosowanie dotyczy danych szeregów czasowych, ale nie ogranicza się do tego. Oto cytat dotyczący opracowanego modułu R:
pdc: Pakiet R dla opartego na złożoności grupowania szeregów czasowych przez Andreasa Brandmaiera
Oprócz PDC istnieje również metoda uczenia maszynowego, procedura iSax opracowana przez Eamona Keogha z UC Irvine, która również jest warta porównania.
Na koniec jest ten artykuł na temat niszczenia danych: Odkrywanie czającego się porządku w danychprzez Chattopadhyay i Lipson. Poza sprytnym tytułem, praca ma poważny cel. Oto streszczenie: „Od automatycznego rozpoznawania mowy po odkrywanie niezwykłych gwiazd, u podstaw prawie wszystkich zadań automatycznego odkrywania leży zdolność do porównywania i kontrastowania strumieni danych między sobą, w celu identyfikacji połączeń i określania wartości odstających. Jednak pomimo powszechności danych, zautomatyzowane metody nie nadążają. Kluczowym wąskim gardłem jest to, że większość algorytmów porównywania danych polega obecnie na ludzkim ekspercie, który określa, jakie „cechy” danych są istotne dla porównania. W tym miejscu proponujemy nową zasadę szacowania podobieństwa między źródłami arbitralności strumienie danych, nie wykorzystując ani wiedzy w dziedzinie, ani uczenia się. Pokazujemy zastosowanie tej zasady do analizy danych z wielu trudnych problemów w świecie rzeczywistym, w tym ujednoznacznienie wzorców elektro-encefalograficznych dotyczących napadów padaczkowych, wykrywanie anomalnej aktywności serca z nagrań dźwiękowych serca i klasyfikacja obiektów astronomicznych z surowej fotometrii. We wszystkich tych przypadkach i bez dostępu do wiedzy o domenach, wykazujemy wydajność na równi z dokładnością osiągniętą dzięki specjalistycznym algorytmom i heurystykom opracowanym przez ekspertów w dziedzinie. Sugerujemy, że zasady niszczenia danych mogą otworzyć drzwi do zrozumienia coraz bardziej złożonych obserwacji, zwłaszcza gdy eksperci nie wiedzą, czego szukać ”. We wszystkich tych przypadkach i bez dostępu do wiedzy o domenach, wykazujemy wydajność na równi z dokładnością osiągniętą dzięki specjalistycznym algorytmom i heurystykom opracowanym przez ekspertów w dziedzinie. Sugerujemy, że zasady niszczenia danych mogą otworzyć drzwi do zrozumienia coraz bardziej złożonych obserwacji, zwłaszcza gdy eksperci nie wiedzą, czego szukać ”. We wszystkich tych przypadkach i bez dostępu do wiedzy o domenach, wykazujemy wydajność na równi z dokładnością osiągniętą dzięki specjalistycznym algorytmom i heurystykom opracowanym przez ekspertów w dziedzinie. Sugerujemy, że zasady niszczenia danych mogą otworzyć drzwi do zrozumienia coraz bardziej złożonych obserwacji, zwłaszcza gdy eksperci nie wiedzą, czego szukać ”.
To podejście wykracza daleko poza krzywoliniowe dopasowanie. Warto to sprawdzić.
źródło
Wykrywanie punktów zmiany w szeregu czasowym wymaga zbudowania solidnego globalnego modelu ARIMA (z pewnością wadliwego w przypadku zmian modelu i zmian parametrów w czasie w twoim przypadku), a następnie zidentyfikowania najbardziej znaczącego punktu zmiany w parametrach tego modelu. Używając twoich wartości 509, najbardziej znaczącym punktem zmiany był okres około 353. Użyłem zastrzeżonych algorytmów dostępnych w AUTOBOX (które pomogłem opracować), które mogłyby być licencjonowane dla twojej spersonalizowanej aplikacji. Podstawową ideą jest podzielenie danych na dwie części i po znalezieniu najważniejszego punktu zmiany należy ponownie przeanalizować każdy z dwóch zakresów czasowych osobno (1-352; 353-509) w celu ustalenia dalszych punktów zmiany w każdym z dwóch zestawów. Jest to powtarzane, dopóki nie pojawi się k podzbiorów. Pierwszy krok załączyłem, stosując to podejście.
źródło
Myślę, że tytuł wątku wprowadza w błąd: nie chcesz porównywać funkcji gęstości, ale tak naprawdę szukasz przerw strukturalnych w szeregu czasowym. Nie określa się jednak, czy te pęknięcia strukturalne powinny zostać wykryte w oknie kroczącym, czy z perspektywy czasu, patrząc na całą historię szeregów czasowych. W tym sensie twoje pytanie jest w rzeczywistości duplikatem tego: jaka metoda wykrywania pęknięć strukturalnych w szeregach czasowych?
Jak wspomniano w tym linku Rob Hyndman, R oferuje do tego celu pakiet strucchange. Bawiłem się twoimi danymi, ale muszę powiedzieć, że wyniki są rozczarowujące [czy pierwszy punkt danych to naprawdę 4, czy powinien mieć 54?]:
Nie jestem zwykłym użytkownikiem pakietu. Jak widać, zależy to od modelu dopasowanego do danych. Możesz eksperymentować z
co daje ci najlepiej dopasowany model ARIMA.
źródło