JAGS'de Sansür / Kesme


10

JAGS'ta sansür sorununun nasıl çözüleceğiyle ilgili bir sorum var.

X değerlerinin ölçüm hatası olduğu normalde iki değişkenli bir karışım gözlemliyorum. Gözlenen sansür değerlerinin gerçek altında yatan 'araçlarını' modellemek istiyorum.

xtrue+ϵ=xobserved ϵN(0,sd=.5)

İşte şimdi ne var:

 for (i in 1:n){
   x[i,1:2]~dmnorm(mu[z[i],1:2], tau[z[i],1:2,1:2])
   z[i]~dcat(prob[ ])
 }

Y'nin ayrıca ölçüm hatası vardır. Ne yapmak istiyorum böyle bir şeydir:

 for (i in 1:n){
   x_obs[i] ~ dnorm(x_true[i],prec_x)I(x_true[i],)
   y_obs[i] ~ dnorm(y_true[i],prec_y)
   c(x_true[i]:y_true[i])~dmnorm(mu[ z [ i ],1:2], tau[z[i],1:2,1:2])
   z[i]~dcat(prob[ ])
 }

 #priors for measurement error
 e_x~dunif(.1,.9)
 prec_x<-1/pow(e_x,2)
 e_y~dunif(2,4)
 prec_y<-1/pow(e_y,2)

Açıkçası c komutu JAGS için geçerli değildir.

Şimdiden teşekkürler.


3
Kısaltmak için T (-, -) kullanın, ancak sansür ve kesme hakkında bilgi için kullanıcı kılavuzunu okuyun
David LeBauer

Yanıtlar:


9

Belki de aradığınız şey budur:

x_obs[i] ~ dnorm(x_true[i],prec_x)T(x_true[i], )

JAGS hem sansürleme hem de kesme için seçeneklere sahiptir. Eğer kesme istediğiniz gibi tanıyor, çünkü sesler a-priori olduğunu belli aralıkta gözlem yalanlar

Jagların kesme ve sansürlemeyi nasıl kullandığı hakkında daha fazla bilgi için kullanım kılavuzunu okuyun .


3

Tavsiyeler için teşekkürler David. Bu soruyu JAGS destek forumuna gönderdim ve faydalı bir cevap aldım. Anahtar 'true' değerleri için iki boyutlu bir dizi kullanmaktı.

for (j in 1:n){ 
  x_obs[j] ~ dnorm(xy_true[j,1], prec_x)T(xy_true[j,1],) 
  y_obs[j] ~ dnorm(xy_true[j,2], prec_y)
  xy_true[j, ] ~ dmnorm(mu[ z [j],1:2], tau[z[j],1:2,1:2]) 
  z[j]~dcat(prob[ ]) 
}

 #priors for measurement error 
 e_x~dunif(.1,.9)
 prec_x<-1/pow(e_x,2)
 e_y~dunif(2,4)
 prec_y<-1/pow(e_y,2) 
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.