Bisakah seseorang memandu saya melalui contoh tentang cara menggunakan filter DLM Kalman dalam R pada seri waktu. Katakanlah saya memiliki nilai-nilai ini (nilai triwulanan dengan musiman tahunan); bagaimana Anda menggunakan DLM untuk memprediksi nilai selanjutnya? Dan BTW, apakah saya memiliki data historis yang cukup (berapa minimum)?
89 2009Q1
82 2009Q2
89 2009Q3
131 2009Q4
97 2010Q1
94 2010Q2
101 2010Q3
151 2010Q4
100 2011Q1
? 2011Q2
Saya mencari jenis kode buku resep gaya-R cara-demi-langkah jawaban. Akurasi prediksi bukanlah tujuan utama saya, saya hanya ingin mempelajari urutan kode yang memberi saya nomor untuk 2011Q2, bahkan jika saya tidak memiliki cukup data.
r
time-series
forecasting
datayoda
sumber
sumber
dlm
paket membuat ini semudah mungkin.dlm
paketnya? Seperti yang saya katakan dalam jawaban saya, DLM lebih seperti membuat program daripada memasukkan beberapa variabel ke panggilan fungsi. datayoda tidak pernah menerima jawaban, jadi saya tidak yakin mereka bisa melewati pengamatan ini.Jawaban:
Makalah di JSS 39-02 membandingkan 5 paket Kalman filtering R yang berbeda dan memberikan kode sampel.
sumber
DLM memang keren, tetapi tidak sesederhana, katakanlah, ARIMA atau metode lain. Dalam metode lain, Anda memasukkan data Anda dan kemudian men-tweak beberapa parameter algoritma, mungkin merujuk ke berbagai diagnostik untuk memandu pengaturan Anda.
Dengan DLM, Anda membuat mesin ruang angkasa negara, yang terdiri dari beberapa matriks yang pada dasarnya mengimplementasikan sesuatu seperti Hidden Markov Model. Beberapa paket (
sspir
saya pikir, antara lain) berharap Anda memahami konsep dan apa yang dilakukan oleh matriks. Saya sangat menyarankan Anda mulai dengandlm
paket, dan seperti yang disarankan @RockScience, telusuri sketsa tersebut.Pada
dlm
dasarnya Anda akan mengambil beberapa langkah:Apa jenis komponen yang menggambarkan seri saya? Sebuah tren? Musiman? Variabel eksogen? Anda akan menggunakan
dlm
alat sepertidlmModPoly
untuk mengimplementasikan komponen-komponen ini, menggunakan+
operator untuk bergabung bersama menjadi satu model.Buat subrutin R yang membutuhkan banyak parameter yang diperlukan oleh model ini, membuat komponen dengan parameter tersebut, lalu menambahkannya bersama-sama dan mengembalikan model yang dihasilkan.
Gunakan
dlmMLE
untuk melakukan pencarian / optimasi untuk menemukan parameter yang sesuai (menggunakan MLE, yang pada dasarnya adalah optimasi, dengan perangkap yang dapat terjadi dalam optimasi).dlmMLE
berulang kali panggil subrutin R Anda dengan parameter kandidat untuk membuat model, lalu uji mereka.Buat model akhir Anda, menggunakan subrutin R yang Anda buat plus parameter yang Anda temukan di langkah 3.
Saring data Anda dengan
dlmFilter
, lalu mungkin lancardlmSmooth
.Jika Anda menggunakan
dlmModReg
atau melakukan sesuatu yang menyebabkan model memiliki parameter varian waktu, Anda tidak dapat menggunakandlmForecast
untuk meramalkan seri Anda. Jika Anda berakhir dengan model varian waktu, Anda akan ingin mengisi data input Anda dengan NA dan biarkandlmFilter
isinya untuk Anda (perkiraan orang miskin), karenadlmForecast
tidak bekerja dengan parameter yang bervariasi waktu.Jika Anda ingin memeriksa komponen secara terpisah (katakan tren, secara terpisah dari musim), Anda harus memahami matriks dan apa yang ada di setiap kolom, ditambah memahami sedikit tentang bagaimana
dlm
menyatukannya (urutan penting!).Ada paket lain, yang namanya lolos dari saya, yang mencoba membuat ujung depan yang dapat menggunakan beberapa paket ini (termasuk
dlm
sebagai ujung belakang). Sayangnya, saya tidak pernah berhasil dengan baik, tapi itu mungkin saya.Saya sangat merekomendasikan untuk membeli buku tentang DLM. Saya mendapat beberapa dari mereka dan banyak bermain
dlm
untuk sampai ke tempat saya, dan saya bukan ahli dengan cara apa pun.sumber
dlm
sketsa paket. Anda akan belajar apa yang perlu Anda ketahui. Itu sebabnya saya sarankandlm
, karena Anda tidak membuat FF, dll, sendiri.Saya sarankan Anda membaca sketsa dlm http://cran.r-project.org/web/packages/dlm/vignettes/dlm.pdf khususnya bab 3.3
sumber