Testowanie stabilności w szeregu czasowym

9

Czy istnieje standardowa (lub najlepsza) metoda testowania po ustabilizowaniu się szeregu czasowego?


Trochę motywacji

Mam stochastyczny system dynamiczny, który generuje wartość xt na każdym kroku tN. Ten system zachowuje się przejściowo do czasut a następnie stabilizuje się wokół pewnej wartości średniej xz pewnym błędem. Żaden zt, xlub błąd jest mi znany. Jestem skłonny poczynić pewne założenia (na przykład błąd Gaussaxna przykład), ale im mniej potrzebuję założeń a priori, tym lepiej. Jedyne, co wiem na pewno, to to, że istnieje tylko jeden punkt stabilny, do którego zbliża się system, a wahania wokół punktu stabilnego są znacznie mniejsze niż wahania w okresie przejściowym. Proces ten jest również monotoniczny, mogę to założyćx0 zaczyna się blisko 0 i wspina się w kierunku x (być może nieco przekroczony, zanim się ustabilizuje x).

The xt dane będą pochodzić z symulacji i potrzebuję testu stabilności jako warunku zatrzymania mojej symulacji (ponieważ interesuje mnie tylko okres przejściowy).

Precyzyjne pytanie

Biorąc pod uwagę tylko dostęp do wartości czasu x0...xT dla niektórych skończonych T, czy istnieje metoda stwierdzenia z rozsądną dokładnością, że stochastyczny układ dynamiczny ustabilizował się w pewnym momencie x? Punkty bonusowe, jeśli test również powrócix, ti błąd wokół x. Nie jest to jednak konieczne, ponieważ istnieją proste sposoby, aby to rozgryźć po zakończeniu symulacji.


Naiwne podejście

Naiwnym podejściem, które po raz pierwszy pojawia się w moich myślach (które widziałem jako warunki wygranej dla niektórych sieci neuronowych) jest wybór parametrów T i E, to jeśli po raz ostatni T czas nie ma dwóch punktów x i x takie, że xx>Enastępnie stwierdzamy, że ustabilizowaliśmy się. Takie podejście jest łatwe, ale niezbyt rygorystyczne. Zmusza mnie również do odgadnięcia, jakie dobre wartościT i E Powinien być.

Wydaje się, że powinno być lepsze podejście, które polega na przeszłości na pewnej liczbie kroków (lub może w jakiś sposób pomija stare dane), oblicza standardowy błąd na podstawie tych danych, a następnie sprawdza, czy nie ma pewnej innej liczby kroków (lub innej system dyskontowania) szeregi czasowe nie były poza tym zakresem błędu. Jako odpowiedź podałem taką nieco mniej naiwną, ale wciąż prostą strategię .


Doceniamy wszelką pomoc lub odniesienia do standardowych technik.

Notatki

Ja również zamieściłem to pytanie na bieżąco w MetaOptimize oraz w bardziej symulowanym opisie do Computational Science .

Artem Kaznatcheev
źródło
Czy znalazłeś jasne rozwiązanie? Interesuje mnie to samo pytanie, ale wszystkie odpowiedzi nie są przekonujące.
Herman Toothrot
1
@ user4050 niestety nie mam. Myślę, że jest to bardzo szerokie pytanie i istnieje wiele technik, które są lepsze w niektórych dziedzinach, a gorsze w innych.
Artem Kaznatcheev

Odpowiedzi:

6

Ta krótka uwaga jest daleka od pełnej odpowiedzi, tylko kilka sugestii:

  • jeśli masz dwa okresy czasu, w których zachowanie jest inne, przez różne rozumiem różnice w parametrach modelu (nieistotne w tej konkretnej sytuacji), średnią lub wariancję lub dowolną inną oczekiwaną cechę obiektu szeregów czasowych (xtw twoim przypadku) możesz wypróbować dowolne metody, które szacują czas (odstęp) zmian strukturalnych (lub epidemii) .
  • W R znajduje się strucchange biblioteka zmian strukturalnych w modelach regresji liniowej. Chociaż jest przede wszystkim wykorzystywany do testowania i monitorowania zmian parametrów regresji liniowej, niektóre statystyki mogą być wykorzystane do ogólnych zmian strukturalnych w szeregach czasowych.
Dmitrij Celov
źródło
Brak jakichkolwiek zmian wartości odstających / zmian poziomu / trendu ORAZ nieuwzględnienie seryjnej korelacji jakiegokolwiek opóźnienia w resztkach modelu są składnikami, które często powodują niewłaściwe stosowanie standardowych testów F, dlatego należy zachować ostrożność (jak zasugerowałeś!).
IrishStat
@IrishStat, jak widać z mojego postu, nie sugeruję używania modelu regresji liniowej, właśnie zauważyłem, że może on mieć podobną formę statystyki (CUMSUM lub cokolwiek innego, ponieważ te ostatnie są stosowane do reszt modelu, które wyraźnie są to obiekty szeregów czasowych) z (prawdopodobnie) różnymi rozkładami granicznymi, które uwzględniają autokorelację (testowalną) i że jeśli chcesz, możesz dokonać odstających (również testowalnych) korekt przed dalszym testowaniem. Jest to jedyna znana biblioteka R, która działa ze zmianami strukturalnymi.
Dmitrij Celov,
Zaczynam coraz bardziej lubić tę odpowiedź. Czy masz jakieś sugestie dotyczące dobrego odniesienia (najlepiej niedawnego artykułu z ankiety) do niektórych popularnych metod szacowania czasu zmiany strukturalnej?
Artem Kaznatcheev
4

Kiedy czytam twoje pytanie „i wahania wokół punktu stabilnego są znacznie mniejsze niż wahania w okresie przejściowym”, to co z niego wyciągam, to próba wykrycia, kiedy i czy wariancja błędów uległa zmianie, a jeśli tak, to kiedy! Jeśli to jest twój cel, możesz rozważyć przejrzenie pracy lub R. Tsay'a „wartości odstające, przesunięcia poziomów i zmiany wariancji w szeregach czasowych”, Journal of Forecasting Vol 7, 1-20 (1988). Wykonałem znaczną pracę w tej dziedzinie i uważam, że jest bardzo produktywna w dostarczaniu dobrych analiz. Inne podejścia (np. Analiza regresji liniowej / liniowej), które zakładają niezależne obserwacje i brak odstających wartości impulsów i / lub brak przesunięć poziomu lub lokalnych trendów czasowych i parametrów niezmiennych w czasie są moim zdaniem niewystarczające.

IrishStat
źródło
1

Zastanawiałem się więcej nad tym pytaniem i pomyślałem, że dam nieco ulepszenia naiwnego podejścia jako odpowiedzi w nadziei, że ludzie znają dalsze pomysły w tym kierunku. Pozwala nam to również wyeliminować potrzebę znajomości wielkości wahań.


Najłatwiejszym sposobem na jego wdrożenie są dwa parametry (T,α). Pozwolićyt=xt+1xt być zmianą szeregów czasowych między znacznikiem czasu t i t+1. Gdy seria jest stabilnax, ybędzie się wahać wokół zera z pewnym błędem standardowym. Zakładamy, że ten błąd jest normalny.

Weź ostatnie T, yti pewnie pasują do Gaussa αza pomocą funkcji takiej jak dopasowanie normalne Matlaba . Pasowanie daje nam średniąμ z α średni błąd ufności Eμ i odchylenie standardowe σ z odpowiednim błędem Eσ. Gdyby0(μEμ,μ+Eμ), możesz zaakceptować. Jeśli chcesz mieć dodatkową pewność, możesz także ponownie znormalizować plikyts przez σ znalazłeś (tak, że teraz masz odchylenie standardowe 1) I test z Kołmogorow-Smirnova badania wα poziom zaufania.


Zaletą tej metody jest to, że w przeciwieństwie do podejścia naiwnego, nie trzeba już nic wiedzieć o wielkości wahań termicznych wokół średniej. Ograniczeniem jest to, że nadal masz arbitralnyTparametr i musieliśmy założyć normalny rozkład hałasu (co nie jest nierozsądne). Nie jestem pewien, czy można to zmienić za pomocą jakiegoś ważonego środka z dyskontowaniem. Jeśli przewiduje się inny rozkład modelu szumu, wówczas normfit i test Kołmogorowa-Smirnova należy zastąpić ich odpowiednikami dla tego rozkładu.

Artem Kaznatcheev
źródło
0

Możesz rozważyć przetestowanie wstecz (z ruchomym oknem) pod kątem kointegracji xśredniej długoterminowej.

Kiedy xpojawi się flop wokół średniej, mam nadzieję, że test okienkowy Augmented Dickey Fuller lub jakikolwiek test kointegracyjny, który wybierzesz, powie ci, że te dwie serie są zintegrowane. Gdy przejdziesz do okresu przejściowego, w którym dwie serie oddalają się od siebie, mam nadzieję, że twój test pokaże, że serie okienkowe nie są ze sobą zintegrowane.

Problem z tym schematem polega na tym, że trudniej jest wykryć kointegrację w mniejszym oknie. A okno, które jest zbyt duże, jeśli zawiera tylko niewielki segment okresu przejściowego, powie ci, że seria okien jest zintegrowana, kiedy nie powinna. I, jak można się domyślać, nie można z góry wiedzieć, jaki może być „odpowiedni” rozmiar okna.

Wszystko, co mogę powiedzieć, to to, że będziesz musiał się z tym bawić, aby sprawdzić, czy uzyskasz rozsądne wyniki.

rachunek_80
źródło
0

W trakcie symulacji podziel ostatnie 2N punkty dzieląc je na pierwszą i drugą połowę. Oblicz serię zmian (wartośćmt+1mt) dla danych odsetkowych dla każdej połowy. Przetestuj rozkład tych dwóch zestawów delta pod kątem stacjonarności. Najprostszym sposobem na to jest obliczenie cdf każdej dystrybucji, oznaczając ostatnią jako „obserwowaną”, a poprzednią jako „oczekiwaną”. Następnie przeprowadź test chi-kwadrat Pearsona dla wartości twojej metryki przy każdym decylu.

Pete
źródło
0

Oprócz oczywistego rozwiązania Kalmana, możesz używać rozkładów falkowych i uzyskać spektrum mocy zlokalizowane w czasie i częstotliwości. Spełnia to Twoje oczekiwania, ale niestety nie daje formalnego testu, kiedy system się ustabilizuje. Ale dla praktycznego zastosowania jest w porządku; wystarczy spojrzeć na moment, w którym energia wysokich częstotliwości umiera, i kiedy współczynniki falkowe ojca stabilizują się.

użytkownik2763361
źródło
czyż to nie tylko pomija, ponieważ nie muszę sprawdzać, kiedy szeregi czasowe współczynnika falki ojca się stabilizują? Czy istnieje standardowa metoda dla tego konkretnego szeregu czasowego? Jakie jest oczywiste rozwiązanie filtrów Kalmana?
Artem Kaznatcheev
@ArtemKaznatcheev Dlaczego nie możesz po prostu spojrzeć na wykres serii współczynników? Starałem się zaproponować rozwiązanie, które nie spełniało waszej chęci testowania, ale jako kompromis nie było wielu założeń.
user2763361