Kiểm duyệt / Cắt bớt trong JAGS


10

Tôi có một câu hỏi về cách phù hợp với vấn đề kiểm duyệt trong JAGS.

Tôi quan sát một hỗn hợp bivariate bình thường trong đó các giá trị X có lỗi đo. Tôi muốn mô hình hóa 'phương tiện' thực sự của các giá trị bị kiểm duyệt quan sát.

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

Đây là những gì tôi có bây giờ:

 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 cũng có lỗi đo lường. Những gì tôi muốn làm là một cái gì đó như thế này:

 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)

Rõ ràng lệnh c không hợp lệ trong JAGS.

Cảm ơn trước.


3
Để cắt bớt, hãy sử dụng T (-, -), nhưng đọc hướng dẫn sử dụng để biết thông tin về kiểm duyệt và cắt ngắn
David LeBauer

Câu trả lời:


9

Có lẽ đây là những gì bạn đang tìm kiếm:

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

JAGS có các tùy chọn cho cả kiểm duyệt và cắt ngắn. Nghe có vẻ như bạn muốn cắt ngắn, vì bạn biết a-prori rằng quan sát nằm trong một phạm vi cụ thể

Đọc hướng dẫn sử dụng để biết thêm chi tiết về cách jags sử dụng cắt xén và kiểm duyệt.


3

Cảm ơn những lời khuyên David. Tôi đã đăng câu hỏi này lên diễn đàn hỗ trợ của JAGS và nhận được câu trả lời hữu ích. Chìa khóa là sử dụng mảng hai chiều cho các giá trị 'true'.

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) 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.