8 votos

Muestreo de Gibbs a partir de una distribución condicional

Estoy tratando de proponer el muestreo de Gibbs con la densidad de abajo,

$$p(y_1,y_2,y_3)\propto \exp [-({{y}_{1}}+{{y}_{2}}+{{y}_{3}}+{{\theta}_{12}{y_1}{y_2}}+{{\theta }_{13}{y_3}{y_1}}+{{\theta }_{23}{y_2}{y_3}})]$$

donde, $({{y}_{1}},{{y}_{2}},{{y}_{3}})\in R_{+}^{3}$ y ${{\theta }_{ij}}=i+j$

¿Cómo puedo encontrar la distribución condicional completa?

Y entonces, voy a generar una muestra $\{(y_{1}^{i},y_{2}^{i},y_{3}^{i})\}$ para $i=1,...n$ .

Entiendo el muestreo de Gibbs, muestrear una variable mientras se mantienen las otras fijas.

7voto

Bob King Puntos 12913

Ahí tienes Muestreador Gibbs: El periodo de combustión es para alcanzar cierta estacionariedad en las muestras

burning_period=5000
iterations=1000
y=matrix(nrow=(burning_period+iterations),ncol=3)
a=matrix(nrow=iterations,ncol=3)

y[1,1]=0.5        #Initial Sample 
y[1,2]=0.6
y[1,3]=0.2   

 for(i in 2:(burning_period+iterations)){

     #I have put 3,3,4 as my theta's. You may make the code generic for any choice of theta's.
     t= 1+3*y[i-1,2]+4*y[i-1,3]
     # Use t or t*-1 based on your requirement.
     t=rexp(1,t)  

     y[i,1]=t
     t= 1+3*y[i,1]+5*y[i-1,3]   
     y[i,2]=rexp(1,t)

     t=1+4*y[i,1]+5*y[i,2]
     y[i,3]=rexp(1,t)  
    }
posteriorSample=y[(burning_period+1) : (burning_period+iterations), ]

3voto

bheklilr Puntos 113

Las distribuciones condicionales completas se pueden encontrar fijando los valores de las dos "otras" variables, y luego combinando todos los términos que se pueden combinar y viendo lo que se obtiene:

$p(y_1|y_2,y_3) \propto \exp\{-(1+\theta_{12}y_2+\theta_{13}y_3)y_1\}$

que evidentemente es una distribución exponencial con parámetro $1+\theta_{12}y_2+\theta_{13}y_3$ y de forma similar para $p(y_2|y_1,y_3)$ que es una distribución exponencial con parámetro $1 + \theta_{12}y_1 + \theta_{23}y_3$ y $p(y_3|y_1,y_2)$ que es una distribución exponencial con parámetro $1 + \theta_{13}y_1 + \theta_{23}y_2$ .

Su muestreador de Gibbs comenzará con algunos valores para $y_1, y_2, y_3$ y sólo hay que hacer un bucle sobre las tres distribuciones condicionales, una y otra vez, generando variantes exponenciales a partir de la distribución apropiada y sustituyendo los valores actuales por los correspondientes $y_i$ como va. Naturalmente, tendrás que descartar algún bloque inicial de variantes para eliminar los efectos de la combustión.

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