Wykryj zmiany w szeregach czasowych


11

Natknąłem się na zdjęcie prototypu aplikacji, który znajduje znaczące zmiany („trendy” - nie wzrosty / wartości odstające) w danych o ruchu:

alternatywny tekst

Chcę napisać program (Java, opcjonalnie R), który jest w stanie zrobić to samo - ale ponieważ moje umiejętności statystyczne są nieco zardzewiałe, muszę ponownie zagłębić się w ten temat.

Jakie podejście / algorytm powinienem zastosować / zbadać?



Tak, odpowiedzi też będą takie same.
whuber

Odpowiedzi:


4

Istnieje wiele sposobów wystąpienia „pęknięcia strukturalnego”.

Jeśli nastąpi zmiana w punkcie przechwytywania lub zmiana trendu w „drugiej części szeregu czasowego”, wówczas lepiej byłoby wykonać wykrywanie interwencji (uwaga: jest to empiryczna identyfikacja znaczącego wpływu nieokreślonej zmiennej deterministycznej, takiej jak jako przesunięcie poziomu, zmiana trendu lub początek impulsu sezonowego). Wykrywanie interwencji jest zatem kursorem wstępnym do Modelowania interwencyjnego, w którym sugerowana zmienna jest zawarta w modelu. Informacje w Internecie można znaleźć, przeglądając „AUTOMATYCZNE WYKRYWANIE INTERWENCJI”. Niektórzy autorzy używają terminu „WYKRYWANIE ZEWNĘTRZNE”, ale podobnie jak wiele języków statystycznych może to być mylące / nieprecyzyjne. Wykryte interwencje mogą być dowolne z następujących (wykrywanie znaczącej zmiany średniej wartości resztkowych);

1-okresowa zmiana poziomu (tj. puls), wieloletnia, ciągła zmiana poziomu (tj. zmiana przechwytywania), systematyczny puls (tj. puls sezonowy), zmiana trendu (tj. 1,2,3,4,5, 7,9,11,13,15 .....) Procedury te są łatwe do zaprogramowania w R / SAS / Matlab i są rutynowo dostępne w wielu dostępnych na rynku pakietach szeregów czasowych, jednak istnieje wiele pułapek, których należy unikać np. czy najpierw wykryć stochastyczną strukturę, czy wykonać wykrywanie interwencji w oryginalnej serii. To jest jak problem z kurczakiem i jajkami. Wczesna praca w tym obszarze była ograniczona do typów 1 i jako taka prawdopodobnie będzie niewystarczająca dla twoich potrzeb, ponieważ twoje przykłady ilustrują ZMIANY POZIOMU.

W sieci znajduje się wiele materiałów, a nawet darmowy program pod adresem http://www.autobox.com/30day.exe, który pozwala nawet na korzystanie z własnych danych przez 30 dni. Możesz się wiele nauczyć „po prostu obserwując”, jak powiedział kiedyś Jogin, i powtórzyć ich wyniki.

Odnośniki do stron internetowych dla dokładnych równań, których można użyć, można znaleźć na stronie 134 w http://www.autobox.com/pdfs/autoboxusersguide.pdf . Jestem jednym z autorów AUTOBOX.


@stefanos: Czy możesz mi podać nazwę aplikacji, ponieważ zawsze jestem zainteresowany opracowywaniem rozwiązań oprogramowania rozwiązujących ten problem. Możesz wysłać mi wiadomość e-mail na moje dane kontaktowe.
IrishStat

1

Wypróbuj pakiet cpm lub changepoint w R. Jest darmowy. Badaj także model punktu zmiany lub wykrywanie zmiany sekwencyjnej.


3
Witamy na stronie @Cherese. Obecnie jest to raczej komentarz niż odpowiedź. Czy mógłbyś trochę się tym zająć?
gung - Przywróć Monikę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.