Censura / Truncamiento en JAGS

10

Tengo una pregunta sobre cómo encajar un problema de censura en JAGS.

Observo una mezcla bivariada normal donde los valores de X tienen un error de medición. Me gustaría modelar los verdaderos 'medios' subyacentes de los valores censurados observados.

Xtrtumi+ϵ=Xosismirvmire ϵnorte(0 0,sre=.5)

Esto es lo que tengo ahora:

 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 también tiene error de medición. Lo que quiero hacer es algo como esto:

 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)

Obviamente, el comando c no es válido en JAGS.

Gracias por adelantado.

Cañada
fuente
3
Para truncar, el uso de T (-, -), pero lee los usuarios manuales para obtener información sobre la censura y truncationq
David LeBauer

Respuestas:

9

Quizás esto es lo que estás buscando:

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

JAGS tiene opciones para censurar y truncar. Parece que quiere truncamiento, ya que sabe a priori que la observación se encuentra dentro de un rango particular

Lea el manual del usuario para obtener más detalles sobre cómo jags utiliza el truncamiento y la censura.

David LeBauer
fuente
3

Gracias por los consejos David. Publiqué esta pregunta en el foro de soporte de JAGS y obtuve una respuesta útil. La clave era usar una matriz bidimensional para los valores 'verdaderos'.

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) 
Cañada
fuente