MCMC tek bir değere yaklaşıyor mu?


13

Jags ve rjags paketini kullanarak hiyerarşik bir model sığdırmaya çalışıyorum. Sonuç değişkenim, bernoulli çalışmalarının bir sırası olan y'dir. İki kategoride performans gösteren 38 insan denek var: Analizime göre, her konuşmacı P kategorisinde kategorisinde başarı olasılığı ve θ p × θ m kategorisinde M kategorisinde başarı olasılığı var . Ayrıca P ve M için bazı topluluk düzeyinde hiperparametre olduğunu varsayıyorum: ve .θpθp×θmμ mμpμm

Yani, her konuşmacı için: ve burada ve dağıtımın ne kadar zirve kontrol eder ve .θ mb e t a ( μ m × κ m , ( 1 - μ m ) × κ m ) κ p κ m μ p μ mθpbeta(μp×κp,(1μp)×κp)θm~betbir(μmxκm,(1-μm)xκm)κpκmμpμm

Ayrıca , .μ mb e t a ( A m , B m )μp~betbir(birp,Bp)μm~betbir(birm,Bm)

İşte benim jags modeli:

model{
## y = N bernoulli trials
## Each speaker has a theta value for each category
for(i in 1:length(y)){
    y[i] ~ dbern( theta[ speaker[i],category[i]])
}

## Category P has theta Ptheta
## Category M has theta Ptheta * Mtheta
## No observed data for pure Mtheta
##
## Kp and Km represent how similar speakers are to each other 
## for Ptheta and Mtheta
for(j in 1:max(speaker)){
    theta[j,1] ~ dbeta(Pmu*Kp, (1-Pmu)*Kp)
    catM[j] ~ dbeta(Mmu*Km, (1-Mmu)*Km)
    theta[j,2] <- theta[j,1] * catM[j]
}

## Priors for Pmu and Mmu
Pmu ~ dbeta(Ap,Bp)
Mmu ~ dbeta(Am,Bm)

## Priors for Kp and Km
Kp ~ dgamma(1,1/50)
Km ~ dgamma(1,1/50)

## Hyperpriors for Pmu and Mmu
Ap ~ dgamma(1,1/50)
Bp ~ dgamma(1,1/50)
Am ~ dgamma(1,1/50)
Bm ~ dgamma(1,1/50)
}

Ben sorunu ben uyarlanması için 5000 yinelemeleriyle bu modeli çalıştırdığınızda, daha sonra 1000 örnekleri alın, yani Mmuve Kmtek değerlere birbirine yaklaştı. 4 zincirle çalıştırıyorum ve her zincir aynı değere sahip değil, ancak her zincir içinde sadece tek bir değer var.

MCMC yöntemlerini kullanarak hiyerarşik modellerin yerleştirilmesinde oldukça yeniyim, bu yüzden bunun ne kadar kötü olduğunu merak ediyorum. Bunu, bu modelin uymak için ümitsiz olduğunu, önceliklerimde bir sorun olduğunu veya kurs için eşit olduğunu gösteren bir işaret olarak mı almalıyım?

Düzenleme: Önemli olması durumunda, (zincirler arası ortalama) yakınsadığı değeri 0.91 ve κ m 1.78 idi.μmκm


Sizi doğru anlıyorsam, bu parametreler her zincirdeki bir sabit değer üzerinde "yakınsar" (bazı yinelemelerden sonra hiç değişmez), ancak bu değer çalıştırdığınız her zincir için farklı mıdır? Kulağa kötü geliyor, belki de gerçekten berbat bir Metropolis Hastings adımı gibi. Modeliniz olabilir, JAGS olabilir, her ikisinin bir kombinasyonu olabilir. Muhtemelen bu modelin sığması çok uzun sürmüyor, bu yüzden özellikle adaptasyon dönemi için önce (çok) daha uzun zincirler çalıştırmayı deneyeceğim.
JMS

Bu yüzden, modeli 5000 tekrar ile güncelledim ve söz konusu parametreler değişmedi. Bunun gibi yerel minima'ya düşebileceklerinin farkında değildim.
JoFrhwld

1
hızlı öneriler: 1. N = 1 ile dbin kullanmaya çalışın. Ve p değerini sınırlamak için sınırları kullanın. Bunun gibi bir şey: p.bound [i] <- maks. (0, dk. (1, p [i]))
Manoel Galdino

1
Birkaç açıklayıcı soru: 1. P kategorisi altında 38, M kategorisi altında 38 (denek) uzunluk (y) = 76? 2. Hiperparamerler ve deney için gerekçe hakkında daha fazla arka plan bilgisi verebilir misiniz? Benim için biraz kafa karıştırıcı.
Manoel Galdino

1
Muhtemelen teta [j, 1] ~ dbeta (1.1, 1.1) ya da başka bir şeyde olduğu gibi tüm hiperparametreleri düzeltirim ve bir hiper prior'a geçmeye çalışmadan önce hangi sonuçları elde edersiniz. Ayrıca, teta [j, 2] 'nin önceliği, genel olarak bir betanın kendisi olmayan iki beta'nın ürünü ve tabii ki sonuç olarak teta [j, 2] <teta [j, 1]' dir. Bunu amaçladığınız anlaşılıyor; sadece meraktan, neden?
jbowman

Yanıtlar:


2

Bu daha çok bir yorum, ama yeterli itibara sahip olmadığım için ben de cevap verebilirim.

MCMC örnekleyicileriyle olan sınırlı deneyimimden, gözlemlediğim şey, hiperparametreler çok dar olduğunda parametrelerin sabit kalma eğiliminde olmasıdır. Parametrelerin yayılmasını kontrol ettikleri için, çözelti boşluğunun verimli bir şekilde örneklenmesini önlerler.

Hiperparametreler için daha büyük değerler almaya çalışın ve ne olduğunu görün.

Bu teknik makale MCMC örnekleyicilerini anlamamda bana çok yardımcı oldu. Gibbs (kullandığınız) ve Hybrid Monte Carlo olmak üzere iki örnekleyiciden oluşur ve parametreler ve hiperparametreler için önceliklerin, hiper-değerlerin ve değerlerin nasıl seçileceğini hızlı bir şekilde açıklar.


0

Bu, zincirin yapısında bir sorun olabilir. Nereye ulaştığınız nereden başladığınıza bağlıdır. MCMC'yi kullanmak için zincirin tekrarlayan olmasını istersiniz, bu da nerede başlarsanız başlasın durum alanındaki diğer tüm durumlara ulaşabileceğiniz anlamına gelir. Zincir tekrarlanmıyorsa, durum alanının bir alt kümesinde sıkışıp kalırsınız. MCMC fikri, zincirin eninde sonunda açılacağı mevcut bir sabit dağılıma sahip olmaktır. Bu sabit dağılım, genellikle zincirdeki durumlardan herhangi birinde bulunma ve tanımladığınız gibi tek bir noktada sıkışıp kalmama ihtimaline sahiptir. . Algoritmanızı kontrol edemiyorum ama belki de bir hata var. Ayrıca Markov zincirinizin tekrar etmediği bir sorun tanımlamış olabilirsiniz.

MCMC hakkında bilgi sahibi olmak istiyorsanız, MCMC'nin her yönünü tanımlayan makaleler içeren Markov Zinciri Monte Carlo El Kitabına bir göz atmanızı tavsiye ederim. 2011 yılında CRC Press tarafından yayınlanmıştı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.