Rao-Blackwellization của Gibbs Sampler


9

Tôi hiện đang ước tính một mô hình biến động ngẫu nhiên bằng các phương pháp Markov Chain Monte Carlo. Qua đó, tôi đang thực hiện các phương pháp lấy mẫu Gibbs và Metropolis.

Giả sử tôi lấy trung bình của phân phối sau thay vì một mẫu ngẫu nhiên từ nó, đây có phải là cái thường được gọi là Rao-Blackwellization không?

Nhìn chung, điều này sẽ dẫn đến việc lấy giá trị trung bình của phương tiện phân phối sau làm ước tính tham số.

Câu trả lời:


10

Giả sử tôi lấy trung bình của phân phối sau thay vì một mẫu ngẫu nhiên từ nó, đây có phải là cái thường được gọi là Rao-Blackwellization không?

Tôi không quen thuộc lắm với các mô hình biến động ngẫu nhiên, nhưng tôi biết rằng trong hầu hết các cài đặt, lý do chúng tôi chọn thuật toán Gibbs hoặc MH để vẽ từ phía sau, là vì chúng tôi không biết hậu thế. Thông thường chúng tôi muốn ước tính trung bình sau và vì chúng tôi không biết trung bình sau, chúng tôi vẽ các mẫu từ phía sau và ước tính nó bằng trung bình mẫu. Vì vậy, tôi không chắc chắn làm thế nào bạn có thể lấy giá trị trung bình từ phân phối sau.

Thay vào đó, công cụ ước tính Rao-Blackwellized phụ thuộc vào o kiến ​​thức về giá trị trung bình của điều kiện đầy đủ; nhưng ngay cả sau đó lấy mẫu vẫn được yêu cầu. Tôi giải thích thêm dưới đây.

Giả sử phân bố sau được xác định trên hai biến, ), chẳng hạn mà bạn muốn ước tính sau có nghĩa là: E [ θ | dữ liệu ] . Bây giờ, nếu có sẵn bộ lấy mẫu Gibbs, bạn có thể chạy thuật toán đó hoặc chạy thuật toán MH để lấy mẫu từ phía sau.θ=(μ,ϕE[θdata]

Nếu bạn có thể chạy một sampler Gibbs, sau đó bạn biết trong hình thức đóng cửa và bạn biết giá trị trung bình của phân phối này. Đặt đó có nghĩa là ϕ . Lưu ý rằng ϕ là hàm của μ và dữ liệu.f(ϕμ,data)ϕϕμ

Điều này cũng có nghĩa là bạn có thể tích hợp ra từ sau, vì vậy sau biên của μf ( μ | d một t một ) (điều này vẫn chưa được biết đầy đủ, nhưng được biết đến tối đa là một hằng số). Bây giờ bạn muốn bây giờ chạy một chuỗi Markov mà f ( L | d một t một ) là phân phối bất biến, và bạn lấy mẫu từ sau biên này. Câu hỏi làϕμf(μdata)f(μdata)

Làm thế nào bạn có thể hiện nay ước tính giá trị trung bình sau của chỉ sử dụng những mẫu từ sau biên của μ ?ϕμ

Điều này được thực hiện thông qua Rao-Blackwellization.

E[φ|dmộttmột]= =φf(μ,φ|dmộttmột)dμdφ= =φf(φ|μ,dmộttmột)f(μ|dmộttmột)dμdφ= =φ*f(μ|dmộttmột)dμ.

Như vậy giả sử chúng ta đã thu được mẫu từ sau biên của μ . Sau đó φ = 1X1,X2,Giáo dụcXNμ

φ^= =1NΣTôi= =1Nφ*(XTôi),

được gọi là công cụ ước tính Rao-Blackwellized cho . Điều tương tự có thể được thực hiện bằng cách mô phỏng từ các lề chung.φ

Ví dụ (Hoàn toàn để trình diễn).

Giả sử bạn có một sau chưa biết chung cho mà từ đó bạn muốn mẫu. Dữ liệu của bạn là một số y , và bạn có các điều kiện đầy đủ sau L | φ , y ~ N ( φ 2 + 2 y , y 2 ) φ | μ , y ~ G một m m một ( 2 μ + y , y + 1 )θ= =(μ,φ)y

μ|φ,y~N(φ2+2y,y2)
φ|μ,y~Gmộtmmmột(2μ+y,y+1)

Bạn chạy sampler Gibbs sử dụng các điều kiện, và các mẫu thu được từ hậu nghiệm kết hợp . Hãy để những mẫu được ( μ 1 , φ 1 ) , ( μ 2 , φ 2 ) , ... , ( μ N , φ N ) . Bạn có thể tìm thấy giá trị trung bình mẫu của φ s, và đó sẽ là những ước lượng Monte Carlo thông thường cho giá trị trung bình sau cho φ ..f(μ,φ|y)(μ1,φ1),(μ2,φ2),Giáo dục,(μN,φN)φφ

E[φ|μ,y]= =2μ+yy+1= =φ*.

y

φ^= =1NΣTôi= =1N2μTôi+yy+1.

φφμ


Vì vậy, giả sử phân phối sau của tham số đã biết (theo hiểu biết tốt nhất của tôi là đúng khi áp dụng lấy mẫu Gibbs), lấy giá trị trung bình của phân phối thay vì mẫu ngẫu nhiên sẽ là công cụ ước tính Rao-Blackwellized? Tôi hy vọng tôi hiểu câu trả lời của bạn một cách chính xác. Cảm ơn bạn rất nhiều rồi!
mscnvrsy

f(μ,φ|dmộttmột)f(μ|φ,dmộttmột)f(φ|μ,dmộttmột)μφ*

@mscnvrsy Tôi đã thêm một ví dụ để trợ giúp
Greenparker

Wow, cảm ơn bạn rất nhiều vì đã làm rõ điều này với tôi. Vì vậy, giả sử rằng tôi biết các phân phối có điều kiện đầy đủ, tôi có thể làm việc với các phương tiện lý thuyết của các phân phối có điều kiện và trung bình trên các phương tiện lý thuyết này (chẳng hạn như E [phi | mu, y]) để có được ước lượng RB? Điều này sau đó sẽ giảm thiểu phương sai của ước tính tham số của tôi?
mscnvrsy

Tuy nhiên, nếu bạn đang lấy các mẫu độc lập, vâng, nó sẽ giảm thiểu phương sai của các công cụ ước tính, tuy nhiên, vì bạn đang xử lý các chuỗi Markov, nên thường biết rằng RB không nhất thiết phải giảm phương sai và có một số trường hợp phương sai thậm chí còn tăng. Bài viết này của Charlie Geyer đã đưa ra một số ví dụ cho điểm này.
xanh

9

π2(θ2|y)

π2(θ2|y)= =π(θ1,θ2|y)dθ1= =π2|1(θ2|θ1,y)π1(θ1|y)dθ1= =E(π2|1(θ2|θ1,y))
θ2θ2θ2θ1θ2

Vmộtr(X)= =E[Vmộtr(X|Y)]+Vmộtr[E(X|Y)],
Vmộtr(X|Y)E{(X-E(X|Y))2|Y}Vmộtr(E(X|Y))= =E[(E(X|Y)-E(X))2]
Vmộtr(X)Vmộtr[E(X|Y)].
(θ1Tôi,θ2Tôi)π2(θ2|y)
π^2(θ2|y)= =1MΣTôi= =1Mπ2|1(θ2|θ1Tôi,y)
θ2Tôiθ2

Thí dụ

XYρ

π(x,y)αđiểm kinh nghiệm{-12(1-ρ2)(x2+y2-2ρxy)}
Y~N(0,1)YX= =xN(ρx,1-ρ2)

M(X,Y)Yy

π^Y(y)= =1MΣTôi= =1M11-ρ22πđiểm kinh nghiệm{-12(1-ρ2)(y-ρxTôi)2}
library(mvtnorm)

rho <- 0.5
R <- 50
xy <- rmvnorm(n=R, mean=c(0,0), sigma= matrix(c(1,rho,rho,1), ncol=2))
x <- xy[,1]
y <- xy[,2]

kernel_density <- density(y, kernel = "gaussian")
plot(kernel_density,col = "blue",lty=2,main="Rao-Blackwell estimates from conditional normals",ylim=c(0,0.4))
legend(1.5,.37,c("Kernel","N(0,1)","Rao-Blackwell"),lty=c(2,1,3),col=c("blue","black","red"))
g <- seq(-3.5,3.5,length=100)
lines(g,dnorm(g),lty=1) # here's what we pretend not to know

density_RB <- rep(0,100)
for(i in 1:100) {density_RB[i] <- mean(dnorm(g[i], rho*x, sd = sqrt(1-rho^2)))}
lines(g,density_RB,col = "red",lty=3) 

Chúng tôi quan sát rằng ước tính RB làm tốt hơn nhiều (vì nó khai thác thông tin có điều kiện):

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.