Oszacowanie parametrów dynamicznego modelu liniowego

11

Chcę zaimplementować (w R) następujący bardzo prosty dynamiczny model liniowy, dla którego mam 2 nieznane parametry zmieniające się w czasie (wariancja błędu obserwacji i wariancja błędu stanu ). ϵ 2 tϵt1ϵt2

Yt=θt+ϵt1θt+1=θt+ϵt2

Chcę oszacować te parametry w każdym momencie, bez uprzedzeń . Z tego, co rozumiem, mogę użyć MCMC (na ruchomym oknie, aby uniknąć uprzedzeń) lub filtra cząstek stałych (lub Sekwencyjnego Monte Carlo - SMC).

Jakiej metody byś użył i
jakie są zalety i wady tych dwóch metod?

Pytanie dodatkowe: W jaki sposób wybierasz szybkość zmian parametrów? Wydaje mi się, że musimy tu wprowadzić informacje, ponieważ istnieje okazja między wykorzystaniem dużej ilości danych do oszacowania parametrów a użyciem mniejszej ilości danych w celu szybszej reakcji na zmianę parametru?

RockScience
źródło
Moje pytanie jest trochę podobne do stats.stackexchange.com/questions/2149/… . Celowo ponownie otworzyłem pytanie, ponieważ sytuacja jest nieco inna i chciałbym mieć inne opinie. (Odpowiedź gd047 koncentrowała się głównie na bezzapachowym filtrze Kalmana (UKF))
RockScience
Dziwne, że moja nagroda nie pomaga ... Czy moje pytanie jest źle sformułowane ... Nikt nie ma odpowiedzi? Czy pytanie dotyczące mojego pytania?
RockScience
Wygląda na to, że jest to problem zdegenerowany - błędy można przypisać również hałasowi obserwacyjnemu lub hałasowi procesowemu. Czy jest więcej ograniczeń? Czy państwo jest jednowymiarowe?
IanS,
@lanS. Wszystkie obiekty mają tu rzeczywiście tylko jeden wymiar. Czy możesz rozwinąć nieco więcej na temat tego, że błędami mogą być obserwacja lub hałas. To jest dokładnie to, co chciałbym osiągnąć. Chciałbym uzyskać oszacowanie kroczące stosunku sygnału do szumu poprzez oszacowanie sd 2 zmiennych dźwięków zmieniających się w czasie ....
RockScience
Może powinienem zacząć od ustalenia na początku sd szumu procesowego i zobaczyć, jak reaguje sd szumu obserwacyjnego?
RockScience

Odpowiedzi:

4

Jeśli masz parametry zmieniające się w czasie i chcesz robić rzeczy sekwencyjnie (filtrowanie), SMC ma sens. MCMC jest lepsze, gdy chcesz warunkować wszystkie dane lub masz nieznane parametry statyczne, które chcesz oszacować. Filtry cząstek mają problemy z parametrami statycznymi (zwyrodnienie).

Darren Wilkinson
źródło
1
Dziękuję za Twoją odpowiedź. Gdzie mogę dowiedzieć się, jak zrobić SMC i jaki pakiet R poleciłbyś?
RockScience
4

Wystarczy popatrzeć na DLM pakietu i jego winiet . Myślę, że możesz znaleźć to, czego szukasz, z winiety. Autorzy pakietów także napisał książkę modele dynamiczne liniowe R .

Matti Pastell
źródło
@ Matti Pastell: Mam tę książkę. To jest naprawdę bardzo dobre. Moje pytanie dotyczy różnicy między filtrem cząstek stałych (który z tego, co rozumiem, to sekwencyjna wersja MCMC), a MCMC w oknie ruchomym (w tym ostatnim uruchamiamy proces optymalizacji w oknie ruchomym). Którą metodę należy wybrać i dlaczego?
RockScience,
Poza tym nie wydaje mi się łatwo zbudować ten zmienny w tym czasie model z dlm. Szczerze mówiąc, pakiet jest bardzo łatwy w użyciu dla modeli, które nie zmieniają się w czasie, ale zaczyna być trudniejszy dla wszystkich innych. Edycja: Przez bardziej skomplikowany rozumiem, że nie ma funkcji, która mogłaby rozwiązać problem. Musisz sam kodować skrypt.
RockScience,
1
OK, mam też książkę, ale nie miałem jeszcze czasu, aby ją przeczytać. Przepraszam, że to nie pomaga w twoim problemie.
Matti Pastell,
1
W każdym razie dziękuję, jest to dobra książka, zasługuje na cytowanie tutaj
RockScience
3

Przeczytałem Dynamiczne modele liniowe z R (dobra książka), ostatni rozdział dotyczy sekwencyjnego filtrowania Monte Carlo / cząstek. Zawiera także trochę Rkodu; jednakże w uwagach końcowych rozdziału 5 wyraźnie ostrzegają, że SMC staje się coraz bardziej zawodny w miarę upływu czasu, ponieważ błędy się kumulują. Dlatego zalecają „odświeżanie” filtra cząstek z rozkładem bocznym z pełnej próbki MCMC co( 1000 x ( 50 - 1 ) x 10 ) ÷ 60 ÷ 24Tokresy. Być może źle odczytałem ich ostrzeżenia, ale wydaje się to sugerować, że lepiej jest ci z ruchomym oknem MCMC. Sądzę jednak, że przy tej metodzie istnieją znaczne ograniczenia przetwarzania komputera. Na przykład, zakładając, że miałeś 1000 różnych jednoczynnikowych szeregów czasowych z 50 obserwacjami każda i zajęło ci 10 minut, aby uruchomić pełny próbnik MCMC Gibbs. Następnie oszacowanie parametrów bez uprzedzeń zajęłoby 340 dni ( ) ciągłego przetwarzania. Być może moje oszacowanie czasu potrzebnego na uruchomienie MCMC jest szalone, ale myślę, że jest to ostrożne, ale rozsądne oszacowanie.(1000×(501)×10)÷60÷24

Minęło kilka lat, odkąd zadałeś pytanie, więc byłbym ciekawy, czy sam teraz masz odpowiedź.

Ursus Frost
źródło