5 votos

Ajuste de modelos jerárquicos restringidos en JAGS

He estado investigando sobre los modelos restringidos y hace poco leí el artículo:

Gunn y Dunson (2005) "A Transformation Approach for Incorporating Monotone or Unimodel Constraints", Biostatistics, 6, 434-449

En este trabajo abogan por ajustar un modelo jerárquico sin restricciones y, a continuación, aplicar la restricción a la distribución posterior. Citan el hecho de que las rutinas habituales de muestreo de Gibbs (Gelfand et. al., JASA, 1992, 523-532) son difíciles de aplicar a problemas de parámetros restringidos cuando se ajusta un modelo jerárquico.

Mi pregunta es si JAGS requiere esto o no, o si es capaz de implementar las restricciones en el prior (donde me gustaría que se implementaran). Supongamos que tengo los siguientes datos:

X1 <- c(327,125,7,6,107,277,54)
X2 <- c(637,40,197,36,54,53,97,63,216,118)
N1 <- 7
N2 <- 10

y quiero ajustar una regresión isotónica para un conjunto de valores X con el modelo jerárquico:

X1[i] ~ exponential(theta1(i)), i = 1,...,N1
X2[i] ~ exponential(theta2(i)), i = 1,...,N2
theta1[i] ~ exponential(delta1)
theta2[i] ~ exponential(delta2)
delta1 ~ exponential(lambda)
delta2 ~ exponential(lambda)

donde lambda es una constante especificada, y añadimos las siguientes restricciones:

theta1[1] > theta1[2] > ... > theta1[N1]
theta2[1] > theta2[2] > ... > theta2[N2]

He especificado el modelo JAGS del siguiente modo:

model {

     for(i in 1:N1) {
          X1[i] ~ dexp(theta1[i])
          theta10[i] ~ dexp(d1)
     }
     for(i in 1:N2) {
          X2[i] ~ dexp(theta2[i])
          theta20[i] ~ dexp(d2)
     }
     d1 ~ dexp(d0)
     d2 ~ dexp(d0)
     d0 <- 0.01
     theta11[1:N1] <- sort(theta10)
     theta21[1:N2] <- sort(theta20)
     for(i in 1:N1) { 
          theta1[i] <- theta11[N1-i+1]
     }
     for(i in 1:N2) { 
          theta2[i] <- theta21[N2-i+1]
     }
}

JAGS compila el modelo y parece funcionar bien, y los resultados parecen correctos. Pero, ¿se ajusta realmente al modelo que creo que se ajusta?

1 votos

A primera vista, el modelo parece razonable. Pero la respuesta correcta es realizar una simulación con valores "verdaderos" conocidos de los parámetros y ver si sus estimaciones están lejos de la verdad. Véase el Cook-Gelman-Rubin marco para hacerlo.

1voto

orj Puntos 101

Aquí se plantean dos cuestiones: 1) ¿Está JAGS utilizando internamente la función de densidad posterior correcta? y 2) ¿Está JAGS muestreando a partir de la posterior correcta?

Dado su código JAGS, suponiendo que no hay errores relevantes, JAGS está utilizando la densidad posterior correcta internamente (es decir, así es como este tipo de restricción se aplica en JAGS).

La segunda cuestión es si realmente se están obteniendo muestras de esa parte posterior. Eso depende del algoritmo que depende del muestreador real en uso (consulte el manual de JAGS, hay una función que le dirá lo que está en uso) y cuestiones como la covarianza extraña / alta, el peso de la cola posterior, la multimodalidad, etc ... que son totalmente específicos del modelo. ... hasta donde yo sé, la estructura de este modelo da como resultado un buen resultado posterior, pero si quiere estar seguro: 1) trace el resultado posterior; 2) compruébelo analíticamente; 3) compruebe la literatura específica del modelo; y 4) compruébelo por simulación... y 5) trace el resultado posterior. Cosas raras suceder incluso con modelos jerárquicos sencillos .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X