Apakah ada cara dalam R (fungsi bawaan) untuk menghitung matriks transisi untuk Rantai Markov dari serangkaian pengamatan?
Misalnya, mengambil kumpulan data seperti berikut dan menghitung matriks transisi orde pertama?
dat<-data.frame(replicate(20,sample(c("A", "B", "C","D"), size = 100, replace=TRUE)))
r
markov-process
B_Miner
sumber
sumber
Jawaban:
Saya tidak segera mengetahui fungsi "built-in" (misalnya, dalam
base
atau serupa), tetapi kita dapat melakukan ini dengan sangat mudah dan efisien dalam beberapa baris kode.Berikut adalah fungsi yang mengambil matriks (bukan bingkai data) sebagai input dan menghasilkan jumlah transisi (
prob=FALSE
) atau, secara default (prob=TRUE
), perkiraan probabilitas transisi.Jika Anda perlu menyebutnya pada frame data, Anda selalu dapat melakukannya
Jika Anda mencari beberapa paket pihak ketiga, maka Rseek atau situs pencarian R dapat menyediakan sumber daya tambahan.
sumber
HMM
danRHMM
yang mungkin membantu.R
untuk menjadi sangat rewel di masa lalu, terutama ketika datang ke pemasangan dan saya tidak pernah menemukan satu saya benar-benar suka atau dipercaya. Mungkin situasinya lebih baik sekarang. Saya akan membayangkan mereka akan melakukan ini dengan benar. Jika Anda mengetahui solusi semacam itu, harap kirimkan sebagai jawaban; Saya akan senang memilihnya!dat
kerangka data yang diberikan OP sebagai contoh memiliki kolom data, dan apakah mereka menginginkan matriks transisi per kolom, atau keseluruhan matriks transisi atau dapatkah kita mengubah matriks menjadi vektor?)Saya baru saja mengunggah paket R baru
markovchain
, berdasarkan gaya pemrograman S4. Seiring dengan berbagai metode untuk menangani objek markovchain S4 itu berisi fungsi agar sesuai rantai Markov dari urutan negara. Lihatlah:Itu bisa membantu.
sumber