JAGS의 검열 / 절단


10

JAGS에서 검열 문제를 해결하는 방법에 대한 질문이 있습니다.

X 값에 측정 오류가있는 이변 량 혼합 법선이 관찰됩니다. 관측 된 검열 된 값의 진정한 기본 '평균'을 모델링하고 싶습니다.

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

여기 내가 지금 가진 것입니다 :

 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에도 측정 오류가 있습니다. 내가하고 싶은 것은 다음과 같습니다.

 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)

분명히 c 명령은 JAGS에서 유효하지 않습니다.

미리 감사드립니다.


3
자르려면 T (-,-)를 사용하되, censuring 및 truncationq에 대한 정보는 사용자 매뉴얼을 읽으십시오
David LeBauer

답변:


9

아마도 이것은 당신이 찾고있는 것입니다 :

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

JAGS에는 검열 및 자르기 옵션이 있습니다. 당신은 절단을 원하는 것처럼 당신이 알고 있기 때문에 그것은 소리 선험적 그 특정 범위 내에서 관찰 거짓말

jags가 절단 및 검열을 사용하는 방법에 대한 자세한 내용은 사용 설명서 를 읽으십시오 .


3

팁 David에게 감사합니다. JAGS 지원 포럼에이 질문을 게시하고 유용한 답변을 얻었습니다. 핵심은 '참'값에 2 차원 배열을 사용하는 것이 었습니다.

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) 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.