Estymacja parametru LogLikelihood dla liniowego Gaussowskiego filtra Kalmana


13

Napisałem kod, który potrafi filtrować Kalmana (używając wielu różnych filtrów typu Kalmana [Information Filter i in.]) Dla liniowej analizy przestrzeni stanu gaussowskiego dla n-wymiarowego wektora stanu. Filtry działają świetnie i otrzymuję niezłą wydajność. Jednak oszacowanie parametru za pomocą oszacowania wiarygodności logicznej mnie dezorientuje. Nie jestem statystykiem, ale fizykiem, więc proszę bądź miły.

Rozważmy liniowy model Gaussian State Space

yt=Ztαt+ϵt,
αt+1=Ttαt+Rtηt,

gdzie yt jest naszym wektorem obserwacji, αt naszym wektorem stanu w kroku czasowym t . Ilości pogrubione to macierze transformacji modelu przestrzeni stanów, które są ustawione zgodnie z charakterystyką rozważanego układu. Mamy też

ϵtNID(0,Ht),
ηtNID(0,Qt),
α1NID(a1,P1).

gdzie . Teraz wyprowadziłem i zaimplementowałem rekursję dla filtru Kalmana dla tego ogólnego modelu przestrzeni stanów, zgadując początkowe parametry i macierze wariancji H 1 i Q 1. Mogę tworzyć wykresy takie jakt=1,,nH1Q1

Filtr Kalmana

gdzie punktami są poziomy wody w Nilu dla stycznia ponad 100 lat, linia jest stanem szacunkowym Kalamn, a linie przerywane to 90% poziom ufności.

HtQtσϵση

logL(Yn)=np2log(2π)12t=1n(log|Ft|+vtTFt1vt)

vtFtLσϵσησϵση

Dziękuję za Twój czas.


Ht=σϵ2Ht=ση2

Odpowiedzi:


11

σϵ2ση2νt log L ( Y n )FtlogL(Yn)

Innymi słowy, można traktować filtr Kalmana jako sposób na obliczenie domyślnej funkcji i . Jedyne, co musisz zrobić, to spakować to obliczenie do funkcji lub podprogramu i obsłużyć tę funkcję w procedurze optymalizacji - podobnie jak w R. Ta funkcja powinna akceptować jako dane wejściowe i i zwróć . σ 2 η σ 2 ϵ σ 2 η log L ( Y n )σϵ2ση2optimσϵ2ση2logL(Yn)

Niektóre pakiety w R (np. dlm) Robią to za Ciebie (patrz np. Funkcja dlmMLE).


Dzięki za odpowiedź. Rozumiem, że wydaje mi się, że mam wszystkie składniki wymagane do jawnego obliczenia prawdopodobieństwa logarytmu, jednak wszystkie odniesienia, które wydaje mi się sugerować, używają i jako niewiadomych w funkcji loglikelihood i maksymalizują to przy użyciu Newtona metoda typu? To mnie dezorientuje; „logiczne prawdopodobieństwo jest zmaksymalizowane numerycznie w odniesieniu do nieznanego wektora stanu” - jak? σ ησϵση
MoonKnight

Obliczenie prawdopodobieństwa nie jest tak jednoznaczne, że i nie pojawiają się jawnie w wyrażeniu . Wpływają raczej na prawdopodobieństwo poprzez i . Dlatego musisz uruchomić filtr Kalmana, aby obliczyć dla każdej pary wartości i . Po zakodowaniu tego w postaci funkcji, obsłużysz to do funkcji maksymalizującej typu Newtona (lub dowolnej innej funkcji) i to wszystko. σ η log L ( Y n ) ν t F t log L ( Y n ) σ ϵ σ ησϵσηlogL(Yn)νtFtlogL(Yn)σϵση
F. Tusell,

1
Zdarza się, że mam szczegółowy kod (w R) pokazujący, jak to zrobić dokładnie dla danych Nilu. Używam tego jako ilustracji dla moich uczniów. Niestety jest w języku hiszpańskim, ale mam nadzieję, że kod jest dość przejrzysty (i mogę przetłumaczyć komentarze, jeśli nie). Możesz pobrać ten przykład z et.bs.ehu.es/~etptupaf/N4.html .
F. Tusell,

Jest to bardzo pomocne. Bardzo dziękuje za twój czas. Twój komentarz bardzo pomógł! Czasami trudno „zobaczyć drewno drzew”, a wyjaśnienie czegoś prostego jest wszystkim, czego potrzeba ... Jeszcze raz dziękuję.
MoonKnight

Chciałbym również zapytać, czy mógłbym zajrzeć na stronę, na której przechodzisz przez rekursję wygładzania stanu. Twoje wygładzanie wygląda lepiej niż moje i nie jestem pewien, dlaczego !? Próbowałem go znaleźć na twojej stronie, ale nie mogę znaleźć wymaganej strony ...
MoonKnight
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.