Amostragem de Gibbs para o modelo Ising


11

Pergunta de lição de casa:

Considere o modelo Ising 1-d.

Vamos . x i é -1 ou +1x=(x1,...xd)xi

π(x)∝e∑i=139xixi+1

Crie um algoritmo de amostragem de gibbs para gerar amostras aproximadamente a partir da distribuição alvo .π(x)

Minha tentativa:

Aleatoriamente escolher valores (ou -1 ou 1) para enchimento do vetor . Então talvez x = ( - 1 , - 1 , 1 , 1 , 1 , - 1 , 1 , 1 , . . . , 1 ) . Então isso é x 0 .x=(x1,...x40)x=(−1,−1,1,1,1,−1,1,1,...,1)x0

Então agora precisamos seguir em frente e fazer a primeira iteração. Temos que desenhar os 40 x diferentes para separadamente. Assim...x1

Desenhar de π ( x 1 | x 0 2 , . . . , X 0 40 )x11π(x1|x20,...,x400)

Desenhar de π ( x 2 | x 1 1 , x 0 3 , . . . , X 0 40 )x21π(x2|x11,x30,...,x400)

x31π(x3|x11,x21,x40,...,x400)

Etc ..

π(x)∝e∑i=139xixi+1

Respostas:


11

x1

π(x1∣x2,…,xd)=π(x1,x2,…,xd)π(x2,…,xd)∝ex1x2
P(X1=−1∣X2=x2,…,Xn=xn)=e−x2C
P(X1=1∣X2=x2,…,Xn=xn)=ex2C
e−x2C+ex2C=1⇒C=2cosh⁡x2
x_1 <- sample(c(-1, 1), 1, prob = c(exp(-x_2), exp(x_2)) / (2*cosh(x_2)))

x2,…,x40

Você pode usar os resultados analíticos da Ising para verificar sua simulação?


x1x2x23x24x40i=1

1
x2x39π(xi∣x1,…,xi−1;xi+1,…,xd) ∝ exp⁡(xi−1xi+xixi+1)xi=±1
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.