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
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?
źródło
Odpowiedzi:
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).
źródło
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 .
źródło
Przeczytałem Dynamiczne modele liniowe z R (dobra książka), ostatni rozdział dotyczy sekwencyjnego filtrowania Monte Carlo / cząstek. Zawiera także trochęT okresy. 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×(50−1)×10)÷60÷24
R
kodu; 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 ÷ 24Minęło kilka lat, odkąd zadałeś pytanie, więc byłbym ciekawy, czy sam teraz masz odpowiedź.
źródło