Jak wykryć znaczącą zmianę danych szeregów czasowych z powodu zmiany „zasad”?


15

Mam nadzieję, że jest to właściwe miejsce do opublikowania tego. Rozważyłem opublikowanie go sceptykom, ale sądzę, że po prostu powiedzieliby, że badanie było statystycznie nieprawidłowe. Jestem ciekaw drugiej strony pytania, jak to zrobić dobrze.

Na stronie internetowej Quantified Self autor opublikował wyniki eksperymentu pewnej miary wydajności mierzonej na sobie w czasie i porównywanej przed i po nagłym zaprzestaniu picia kawy. Wyniki zostały ocenione subiektywnie, a autor uważał, że ma dowody na zmianę szeregów czasowych i było to związane ze zmianą polityki (picie kawy)

To przypomina mi modele gospodarki. Mamy tylko jedną ekonomię (w tej chwili na tym nam zależy), więc ekonomiści często wykonują zasadniczo n = 1 eksperymentów. Z tego powodu dane prawie z czasem są autokorelowane. Ekonomiści na ogół obserwują, jak mówi Fed, inicjowanie polityki i próbują zdecydować, czy szeregi czasowe ulegną zmianie, potencjalnie z powodu tej polityki.

Jaki jest odpowiedni test, aby ustalić, czy szereg czasowy wzrósł, czy zmniejszył się na podstawie danych? Ile danych potrzebowałbym? Jakie narzędzia istnieją? Moje początkowe wyszukiwanie w Google sugeruje, że Markov przełącza modele szeregów czasowych, ale nie moje umiejętności googlingu nie zawiodły mnie w pomaganiu w robieniu czegokolwiek z samą nazwą techniki.

Odpowiedzi:


4

Artykuł Box-Tiao, o którym wspomniał Jason, opierał się na znanej zmianie prawa. Pytanie brzmi: jak wykryć punkt w czasie. Odpowiedzią jest zastosowanie procedury Tsay do wykrycia Interwencji, takich jak impulsy, zmiany poziomu, sezonowe impulsy i / lub trendy czasu lokalnego.


1

Przeglądając kilka starych notatek na temat pęknięć strukturalnych, przytaczam następujące dwa cytaty:

Enders, „Applied Econometric Time Series”, wydanie drugie, rozdz. 5

Enders omawia interwencje, funkcje tętna, funkcje stopniowej zmiany, funkcje przenoszenia itp. Ten artykuł może być również pomocny:

Box, GEP i GC Tiao. 1975. „Analiza interwencji z zastosowaniami do problemów ekonomicznych i środowiskowych”. Journal of American Statistics Association 70: 70-79.


1

Czy nie możesz po prostu użyć modelu punktu zmiany, a następnie spróbować zidentyfikować punkt zmiany za pomocą algorytmu MCMC, takiego jak Gibbs Sampling?

Powinno to być stosunkowo proste do wdrożenia, pod warunkiem, że masz jakieś wcześniejsze dystrybucje danych lub pełną dystrybucję warunkową (dla Gibbs).

Szybki przegląd można znaleźć tutaj


1

Jeśli rozważałeś wszystkie punkty czasowe jako potencjalne punkty zmiany (inaczej punkty przerwania, inaczej zmiany strukturalne), pakiet strucchange jest bardzo dobrą opcją.

Wydaje się, że w twoim konkretnym scenariuszu istnieje tylko jeden punkt czasowy dla kandydata. W tym przypadku przychodzi na myśl kilka szybkich opcji:

  1. Test T: test t dla godzin koncentracji na dzień w okresach „przed rzuceniem palenia” vs. „po rzuceniu palenia”. Jeśli martwisz się codzienną korelacją, możesz zrezygnować z niektórych obserwacji, aby mieć wystarczająco długie odstępy czasu, aby uwierzyć, że dni nie są już skorelowane. Dzięki takiemu podejściu będziesz w prosty sposób wymieniał energię.
  2. AR: Dopasuj model AR do jednego manekina: „po rzuceniu”. Jeśli predyktor jest znaczący, oznacza to zmianę. Korzystanie z AR uchwyci (możliwą) zależność między dniami.

: John Chodzi o to, że nie znasz „punktu czasowego jednego kandydata”, ale chcesz go znaleźć analitycznie, być może dla dosłownie setek szeregów czasowych. „Badanie wzroku” w celu ustalenia tego jednego kandydata jest często niewystarczające, ponieważ jednorazowe impulsy i leżąca u ich podstaw struktura ARIMA zatkają się. Metody wykrywania interwencji a la R. Rsay lub George Tiao szukając nieznanego przesunięcia POZIOM / KROK faktycznie konstruują opisywaną zmienną (jeden manekin z zerami, po których następuje 1). Należy dołożyć starań, aby rozważyć identyfikację PIERWSZYCH interwencji, a następnie komponentu ARIMA i odwrotnie.
IrishStat

@IrishStat: W odnośnym blogu punkt zmiany jest znany. W przypadkach, w których tak nie jest, odwołano się do pakietu strucchange R.
JohnRos

: John From struchange documenation „Wreszcie punkty graniczne w modelach regresji ze zmianami strukturalnymi można oszacować” przy użyciu metody CHOW, z którą jestem dokładnie zaznajomiony. Testowanie lub znajdowanie punktów przerwania we współczynnikach regresji wymaga specyfikacji modelu regresji i jeśli tak poprawne, to nie ma nic wspólnego z odpowiedzią na pytanie „test w celu ustalenia, czy szeregi czasowe wzrosły, czy zmniejszyły się w oparciu o dane?”. Myślę, że twoje zalecenie jest niewystarczające, aby odpowiedzieć na pytanie PO. Twoje zalecenie odpowiada na pytanie wierzę, że został zapytany.
IrishStat

: John To prawda, ale banalna, ponieważ modele z tylko przechwytywaniem można znaleźć tylko w podręcznikach lub snach.
IrishStat

@IrishStat: prawdą jest, że struktura zmian strukturalnych jest bardziej ogólna. Jednak wykrycie wzrostu lub zmniejszenia „danych” można wykonać, dopasowując model tylko do przechwytywania.
JohnRos

1

Kilka lat temu usłyszałem przemówienie studenta, Stacey Hancock , podczas lokalnego spotkania rozdziału ASA i dotyczyło „szacowania pęknięć strukturalnych” szeregów czasowych. Rozmowa była naprawdę interesująca, a potem rozmawiałem z nią, a ona pracowała z Richardem Davisem (z Brockwell-Davis ), następnie na Uniwersytecie Stanu Kolorado, obecnie w Kolumbii. Rozmowa była przedłużeniem Davisa i in. praca w dokumencie JASA z 2006 r. zatytułowanym Strutural Break Estimation for Nonstationary Time Series Models , który jest dostępny bezpłatnie tutaj .

Davis ma implementację programową metody, którą nazywa Auto-PARM, którą przekształcił w plik wykonywalny Windows. Jeśli się z nim skontaktujesz, możesz otrzymać kopię. Mam kopię, a oto przykład danych wyjściowych z 1200 serii czasowych obserwacji:

    ============== RESULTS ===============
  ISLAND           1
    SC=   1910.58314770669
    Breaking point/AR order
           1              1
         351              1
         612              3
    ======================================
 Total time:   5.812500

Tak więc serią jest AR (1) na początku, przy obserwacji 351 proces AR (1) zmienia się na inny proces AR (1) (można uzyskać parametry), a następnie przy obserwacji 612 proces zmienia się na AR (3) .

Jednym z interesujących ustawień, na których wypróbowałem Auto-PARM, było sprawdzanie cotygodniowych danych dotyczących wypłat z bankomatów, które były częścią konkursu NN5 . Pamiętam algorytm znajdujący przerwy strukturalne pod koniec listopada danego roku, np. Początek świątecznych zakupów w USA.

Jak więc wykorzystać ten algorytm za pomocą istniejących implementacji? Cóż, znowu możesz skontaktować się z Davisem i sprawdzić, czy możesz uzyskać plik wykonywalny Windows. Kiedy pracowałem w Rogue Wave Software, współpracowałem z Davisem, aby wprowadzić Auto-PARM do bibliotek numerycznych IMSL. Pierwszym językiem, do którego został przeniesiony, był Fortran , gdzie nazywa się Auto_PARM, i podejrzewam, że Rogue Wave wkrótce wyda port C, a następnie porty Python, C # i Java.


: Josh on OP moim zdaniem nie odnosi się do testowania hipotezy o stałości parametrów modelu, w twoim przypadku, w którym AR (3) ma stałe parametry w czasie. Uważa on, że jest interesujący w wykrywaniu dotychczas nieznanej zmiany średniej reszt.
IrishStat

mody: Moim zdaniem OP nie odnosi się do testowania hipotezy o stałości parametrów modelu, w twoim przypadku, czy AR (3) ma stałe parametry w czasie. Uważam, że interesuje go wykrycie do tej pory nieznanej zmiany średniej Pozostałości. Jest to zupełnie inny problem niż ten, o którym mówiłeś. Teraz całkowicie się zgadzam, że w przypadku braku wykrycia interwencji w środku resztek. Można znaleźć moment w którym albo parametry jakiegoś modelu i / lub wariancja błędy mogły się znacznie zmienić, ALE to nie jest to, czego OP chce się dowiedzieć.
IrishStat

@IrishStat: Czy znasz Auto-PARM? Algorytm wykorzystuje reszty w oszacowaniu przerwania (zarówno w odniesieniu do liczby przerw, jak i kolejności AR (p) segmentów). OP nie wydaje się mieć określonej metody, o którą prosi. Wydaje się raczej, że pyta bardzo ogólnie: „Jeśli mierzę proces w czasie i zmieniam coś w tym procesie, czy istnieje sposób na wykrycie tego punktu zmiany na podstawie samych danych?”. Nie pyta o zmianę poziomu vs innowację vs. wykrywanie dodatków odstających. Mam nadzieję, że OP może nam to wyjaśnić ...
Josh Hemann

josh: Z PO „Jaki jest odpowiedni test, aby ustalić, czy szereg czasowy wzrósł, czy zmniejszył się na podstawie danych?”. Uważam, że wymaga to ustalenia, czy średnia reszt nie zmieniła parametrów niektórych modeli ARIMA. Moim zdaniem zalecasz niewłaściwą procedurę oprogramowania / rozwiązania, ale to tylko moja opinia.
IrishStat

1

Josh powiedział:

josh: Z PO „Jaki jest odpowiedni test, aby ustalić, czy szereg czasowy wzrósł, czy zmniejszył się na podstawie danych?”. Uważam, że wymaga to ustalenia, czy średnia reszt nie zmieniła parametrów niektórych modeli ARIMA. Moim zdaniem zalecasz niewłaściwą procedurę oprogramowania / rozwiązania, ale to tylko moja opinia. - IrishStat 28 października 11 o 19:08

Załóżmy, że zaczyna się od modelu AR (1):

Yt=γ+ϕYt-1+mit

Gdzie mit jest, powiedzmy, hałasem Gaussa (średnia zero i wariancja σ2) Średnia z tej serii.

Średnia z serii to γ1-phja

Więc jeśli przez jakiś czas parametry γ i ϕnie zmienia się, podobnie jak ogólna średnia serii. Jednak każda z tych zmian, koniecznie zmieni się średnia serii. Tak więc, przy częściowej stacjonarności, szukamy zmian tych parametrów!

Przy założeniu modeli konstrukcyjnych należy zastosować Auto-PARM.


1
Wygląda na to, że faktycznie cytujesz IrishStat ... czy możesz podać oryginalne źródło cytatu, proszę?
Nick Stauner
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.