Jumlah parameter dalam model Markov

12

Saya ingin menggunakan BIC untuk pemilihan model HMM:

BIC = -2*logLike + num_of_params * log(num_of_data)

Jadi bagaimana cara menghitung jumlah parameter dalam model HMM. Pertimbangkan HMM 2-negara sederhana, di mana kami memiliki data berikut:

data = [1 2 1 1 2 2 2 1 2 3 3 2 3 2 1 2 2 3 4 5 5 3 3 2 6 6 5 6 4 3 4 4 4 4 4 4 3 3 2 2];
model = hmmFit(data, 2, 'discrete');
model.pi = 0.6661    0.3339;
model.A = 
    0.8849    0.1151
    0.1201    0.8799
model.emission.T = 
    0.2355    0.5232    0.2259    0.0052    0.0049    0.0053
    0.0053    0.0449    0.2204    0.4135    0.1582    0.1578
logLike = hmmLogprob(model,data);
logLike =  -55.8382

Jadi saya pikir:

Nparams = size(model.A,2)*(size(model.A,2)-1) + 
          size(model.pi,2)-1) + 
          size(model.emission.T,1)*(size(model.emission.T,2)-1)
Nparams = 13

Jadi pada akhirnya kita memiliki:

BIC = -2*logLike + num_of_params*log(length(x))
BIC = 159.6319

Saya telah menemukan solusi di mana rumus untuk num_of_params(untuk model Markov sederhana) terlihat seperti:

Nparams = Num_of_states*(Num_of_States-1) - Nbzeros_in_transition_matrix

Jadi apa solusi yang tepat? Apakah saya harus memperhitungkan beberapa probabilitas nol dalam transisi atau matriks emisi?

==== Diperbarui sejak 07.15.2011 ====

Saya pikir saya bisa memberikan beberapa klarifikasi tentang dampak dimensi data (menggunakan contoh “distribusi campuran Gaussian”)

X adalah matriks n-by-d di mana (n-baris sesuai dengan pengamatan; d-kolom sesuai dengan variabel (Ndimensi).

X=[3,17 3,43
   1,69 2,94
   3,92 5,04
   1,65 1,79
   1,59 3,92
   2,53 3,73
   2,26 3,60
   3,87 5,01
   3,71 4,83
   1,89 3,30 ];
[n d] = size(X); 
n = 10; d =2;

Model akan memiliki jumlah parameter GMM berikut:

nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * Ndimensions  %for daigonal covariance matrices
nParam = (k_mixtures – 1) + (k_mixtures * NDimensions ) + k_mixtures * NDimensions * (NDimensions+1)/2; %for full covariance matrices

Jika kita memperlakukan X sebagai data 1 dimensi , dari yang kita miliki num_of_data = (n*d), maka untuk data 2 dimensi yang kita miliki num_of_data = n.

Data 2 dimensi : nParam = 11; logLike = -11.8197; BIC = 1.689

Data 1 dimensi : nParam = 5; logLike = -24.8753; BIC = -34.7720

Saya memiliki sedikit latihan dengan HMM. Apakah normal memiliki HMM dengan (5000, 6000 dan lebih banyak parameter)?

Sergey
sumber
apakah Anda memiliki alasan untuk menggunakan BIC? Ini dapat memberikan hasil yang sangat salah jika tidak dengan asumsi yang sesuai.
suncoolsu
@ suncoolsu, Apa maksud Anda tentang pembenaran? Saya telah menemukan beberapa contoh pemilihan K-cluster (model GMM) berdasarkan penilaian BIC. Mungkin saya telah memberikan contoh yang salah dengan membandingkan dua model dengan input data (dimensi) yang berbeda.
Sergey
1
Maksud saya menggunakan BIC hanya jika asumsi, model yang sebenarnya ada di ruang model , dibenarkan. Mungkin itu dibenarkan dalam kasus Anda. Saya setuju dengan Anda bahwa orang menggunakan BIC seperti AIC, tetapi keduanya adalah hal yang sangat berbeda!
suncoolsu
Hai, ini komentar yang terlambat dan harap Anda masih aktif, tetapi apa cara terbaik untuk mendapatkan jumlah parameter dalam model?
masfenix

Jawaban:

7

Pertanyaannya adalah apakah beberapa parameter Anda dalam matriks transisi dan / atau matriks emisi ditetapkan untuk memulainya. Perhitungan Anda (dari jumlah parameter) terlihat benar. Jika Anda karena suatu alasan menginginkan model 3 keadaan alih-alih model 2 keadaan dan memutuskan dimuka bahwa transisi dari keadaan 1 ke 3 dan 3 ke 1 tidak diperbolehkan (memiliki probabilitas 0), Anda harus mempertimbangkan ini dalam perhitungan jumlah parameter.

NRH
sumber
Apakah saya harus mempertimbangkan dimensi data? Bagaimana jika size(data)akan menjadi 2x100
Sergey
@Sergey, saya hanya melihat perhitungan jumlah parameter dalam jawaban saya. Untuk kelengkapan saya harus mempertimbangkan bagaimana menghitung "ukuran" dari kumpulan data juga, karena Anda tertarik pada BIC. Sejujurnya, saya hanya melihat derivasi BIC untuk data independen, tetapi tebakan saya adalah bahwa "ukuran" data yang benar adalah panjang dari seri data. Saya tidak yakin apa yang Anda maksud dengan ukuran 2x100. Jika Anda ingin mengomentari itu, Anda harus memberikan deskripsi yang lebih tepat tentang bagaimana data dikodekan sebagai matriks 2 oleh 100.
NRH
Terima kasih atas jawabannya, saya pikir saya mengerti dampak dimensi data pada BIC, silakan lihat pembaruan saya
Sergey
Apakah saya harus mengurangi jumlah parameter dalam model HMM kiri-kanan (Bakis) (dengan matriks Transisi segitiga)? Apakah normal memiliki HMM dengan (5000, 6000, dan lebih banyak parameter)?
Sergey
4

Saat kami menghitung jumlah parameter bebas dalam pemilihan model BIC, ini berarti jumlah nol dalam matriks transisi dan emisi. Misalnya ketika ada nol dalam matriks transisi-ini berarti bahwa tidak ada kemungkinan bahwa keadaan tertentu bergerak ke yang berikutnya (seperti yang didefinisikan oleh matriks transisi). Begitulah cara BIC memilih status optimal untuk HMM. Namun, mendapatkan no parameter bebas hanya dengan menggunakan ukuran matriks awal, transisi dan emisi membingungkan

jebsam
sumber