Estimasi Parameter LogLikelihood untuk Filter Linear Gaussian Kalman

13

Saya telah menulis beberapa kode yang dapat melakukan pemfilteran Kalman (menggunakan sejumlah filter tipe Kalman yang berbeda [Information Filter et al.]) Untuk Linear Gaussian State Space Analysis untuk vektor keadaan n-dimensi. Filter bekerja dengan baik dan saya mendapatkan beberapa output yang bagus. Namun, estimasi parameter melalui estimasi loglikelihood membingungkan saya. Saya bukan ahli statistik, tetapi seorang ahli fisika, jadi mohon berbaik hati.

Mari kita perhatikan model Ruang Gaussian Negara linear

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

di mana adalah vektor pengamatan kita, vektor keadaan kita pada langkah waktu t . Kuantitas dalam huruf tebal adalah matriks transformasi dari model ruang keadaan yang ditetapkan sesuai dengan karakteristik sistem yang dipertimbangkan. Kami juga punyaytαtt

η tN I D ( 0 , Q t ) , α 1N I D ( a 1 , P 1 ) .

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

di mana t=1,,n . Sekarang, saya telah membuat dan menerapkan rekursi untuk Filter Kalman untuk model ruang keadaan umum ini dengan menebak parameter awal dan matriks varians H1 dan Q1 Saya dapat menghasilkan plot Suka

Filter Kalman

di mana titik-titik itu adalah permukaan air Sungai Nil untuk Jan selama lebih dari 100 tahun, garisnya adalah kondisi Estimasi Kalamn, dan garis putus-putus adalah tingkat kepercayaan 90%.

Sekarang, untuk data 1D ini, atur matriks dan -masing hanya skalar dan masing-masing. Jadi sekarang saya ingin mendapatkan parameter yang benar untuk skalar ini menggunakan output dari Kalman Filter dan fungsi loglikelihoodQ t σ ϵ σ ηHtQtσϵση

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

Di mana adalah kesalahan status dan adalah varian kesalahan negara. Sekarang, di sinilah saya bingung. Dari filter Kalman, saya memiliki semua informasi yang saya perlukan untuk menyelesaikan , tetapi ini tampaknya membuat saya tidak bisa lebih dekat untuk dapat menghitung kemungkinan maksimum dan . Pertanyaan saya adalah bagaimana saya bisa menghitung kemungkinan maksimum dan menggunakan pendekatan loglikelihood dan persamaan di atas? Kerusakan algoritmik akan seperti bir dingin bagiku sekarang ...F t L σ ϵ σ η σ ϵ σ η,vtFtLσϵσησϵση

Terima kasih atas waktunya.


Catatan. Untuk kasus 1D dan . Ini adalah model tingkat lokal univariat. H t = σ 2 ηHt=σϵ2Ht=ση2

Ksatria bulan
sumber

Jawaban:

11

Saat Anda menjalankan filter Kalman seperti yang Anda miliki, dengan nilai dan , Anda mendapatkan urutan inovasi dan kovariannya , maka Anda dapat menghitung nilai menggunakan rumus yang Anda berikan.σϵ2ση2νtFtlogL(Yn)

Dengan kata lain, Anda dapat menganggap filter Kalman sebagai cara untuk menghitung fungsi implisit dari dan . Satu-satunya hal yang perlu Anda lakukan adalah mengemas perhitungan ini ke dalam suatu fungsi atau subrutin dan menangani fungsi itu ke rutin optimasi - seperti di R. Fungsi itu harus diterima sebagai input dan dan kembali .σϵ2ση2optimσϵ2ση2logL(Yn)

Beberapa paket di R (mis dlm) melakukan ini untuk Anda (lihat misalnya fungsi dlmMLE).

F. Tusell
sumber
Terima kasih untuk balasan Anda. Saya menghargai bahwa saya tampaknya memiliki semua komponen yang diperlukan untuk menghitung kemungkinan loglikelecara eksplisit, namun semua referensi saya tampaknya menyarankan agar saya menggunakan dan sebagai tidak diketahui dalam fungsi loglikelihood dan memaksimalkannya menggunakan Newton -jenis metode? Inilah yang membingungkan saya; "loglikelihood dimaksimalkan secara numerik sehubungan dengan vektor negara tidak dikenal" - bagaimana? σϵση
MoonKnight
Perhitungan kemungkinannya tidak eksplisit, karena dan tidak muncul secara eksplisit dalam ekspresi . Sebaliknya, mereka mempengaruhi kemungkinan melalui dan . Dengan demikian, Anda perlu menjalankan filter Kalman untuk menghitung untuk setiap pasangan nilai dan . Setelah Anda mengkode itu dalam bentuk fungsi, Anda mengatasinya ke fungsi memaksimalkan tipe-Newton (atau tujuan umum) dan hanya itu. σϵσηlogL(Yn)νtFtlogL(Yn)σϵση
F. Tusell
1
Saya kebetulan memiliki kode terperinci (dalam R) yang menunjukkan bagaimana melakukan ini secara tepat untuk data Nile. Saya menggunakannya sebagai ilustrasi untuk siswa saya. Sayangnya ini dalam bahasa Spanyol, tapi saya harap kodenya cukup jelas (dan saya bisa menerjemahkan komentar jika tidak). Anda dapat mengambil contoh ini dari et.bs.ehu.es/~etptupaf/N4.html .
F. Tusell
Ini sangat membantu. Terima kasih banyak atas waktu Anda. Komentar Anda banyak membantu! Kadang-kadang sulit untuk "melihat kayu untuk pohon-pohon" dan memiliki sesuatu yang sederhana dijelaskan secara eksplisit adalah semua yang diperlukan ... Terima kasih lagi.
MoonKnight
Saya juga ingin bertanya apakah saya bisa melihat halaman di mana Anda mengalami rekursi perataan. Perataan Anda terlihat lebih baik daripada milik saya dan saya tidak yakin mengapa !? Saya telah berusaha menemukannya dari situs web Anda tetapi saya tidak dapat menemukan halaman yang diperlukan ...
MoonKnight