Markov modelindeki parametre sayısı


12

HMM model seçimi için BIC kullanmak istiyorum:

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

Peki, HMM modelindeki parametre sayısını nasıl hesaplayabilirim? Aşağıdaki verilere sahip olduğumuz basit bir 2 durumlu HMM'yi düşünün:

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

Bence:

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

Sonuçta:

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

num_of_params(Basit Markov modeli için) formülünün aşağıdaki gibi göründüğü bir çözüm buldum :

Nparams = Num_of_states*(Num_of_States-1) - Nbzeros_in_transition_matrix

Peki doğru çözüm nedir? Geçiş veya emisyon matrislerinde bazı sıfır olasılıkları hesaba katmam gerekir mi?

==== 07.15.2011 tarihinden beri güncellendi ====

Veri boyutunun etkisi hakkında bazı açıklamalar sağlayabileceğimi düşünüyorum (“Gauss karışım dağılımı” örneğini kullanarak)

X, n-by-d bir matristir (burada n-satırlar gözlemlere karşılık gelir; d-sütunları değişkenlere (Ndimensions) karşılık gelir.

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 GMM için aşağıdaki parametre sayısına sahip olacaktır:

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

Biz X tedavi ise 1 boyutlu veri elimizdeki daha num_of_data = (n*d)çok için, 2-boyutlu Elimizdeki verilere num_of_data = n.

2 boyutlu veri: nParam = 11; logLike = -11.8197; BIC = 1,689

1 boyutlu veri: nParam = 5; logLike = -24.8753; BIC = -34,7720

HMM ile çok az pratik yapıyorum. HMM'ye sahip olmak normal midir (5000, 6000 ve daha fazla parametre)?


BIC kullanımı için bir gerekçeniz var mı? Uygun varsayımlarla olmasa bile çok yanlış sonuçlar verebilir.
suncoolsu

@ suncoolsu, Gerekçelendirme hakkında ne demek istiyorsun? BIC puanlamasına dayalı K-kümeleri (GMM modelleri) seçimiyle ilgili bazı örnekler buldum. Muhtemelen farklı giriş verileri (boyutlar) ile iki modeli karşılaştırarak yanlış örnek verdim.
Sergey

1
BIC'yi sadece gerçek modelin model uzayında olduğu varsayımı haklı ise, demek istedim . Durumunuzda haklı olabilir. İnsanların BIC'yi AIC gibi kullandığına katılıyorum, ancak her ikisi de çok farklı şeyler!
suncoolsu

Merhaba, bu geç bir yorum ve hala aktif olduğunuzu umuyoruz, ancak bir modeldeki parametre sayısını almanın en iyi yolu nedir?
masfenix

Yanıtlar:


7

Soru, geçiş matrisindeki ve / veya emisyon matrisindeki bazı parametrelerin başlangıç ​​için sabit olup olmadığıdır. Hesaplamalarınız (parametre sayısı) doğru görünüyor. Herhangi bir nedenden dolayı 2 durumlu model yerine 3 durumlu bir model istiyorsanız ve durum 1'den 3'e ve 3'ten 1'e geçişlere izin verilmediğine (0 olasılıklı) karar verirseniz, bunu hesaplarken dikkate almanız gerekir. parametre sayısı.


Veri boyutunu dikkate almam gerekir mi? Ya size(data)2x100 olacak
Sergey

@Sergey, sadece cevabımdaki parametre sayısının hesaplanmasına baktım. Tamlık için, veri setinin "boyutunu" da nasıl hesaplayacağımı düşünmeliydim, çünkü BIC ile ilgileniyorsunuz. Dürüst olmak gerekirse, sadece bağımsız veriler için bir BIC türevi gördüm, ancak tahminim, verilerin doğru "boyutunun" veri serisinin uzunluğu olmasıdır. 2x100 boyutunda ne demek istediğinden emin değilim. Bununla ilgili yorum yapmak isterseniz, verilerin 2'den 100'e kadar bir matris olarak nasıl kodlandığına dair daha kesin bir açıklama yapmalısınız.
NRH

Cevabınız için teşekkürler, veri boyutunun BIC üzerindeki etkisini anladığımı düşünüyorum, lütfen güncellememe bakın
Sergey

Sol-sağ (Bakis) HMM modelinde (üçgen Geçiş matrisi ile) parametre sayısını azaltmalı mıyım? (5000, 6000 ve daha fazla parametre) ile HMM olması normal mi?
Sergey

4

Model seçimi BIC'deki serbest parametre sayısını hesaplarken, bunun sadece geçiş ve emisyon matrislerindeki sıfır sayısı olduğu anlamına gelir. Örneğin, geçiş matrisinde sıfır olduğunda - bu, belirli bir durumun diğerine geçme olasılığının olmadığı anlamına gelir (geçiş matrisi tarafından tanımlandığı gibi). BIC bu şekilde bir HMM için optimum durum seçer. Bununla birlikte, sadece başlangıç, geçiş ve emisyon matrislerinin boyutunu kullanarak serbest parametrelerin hiçbirini elde etmek kafa karıştırıcıdır

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.