Tích hợp đô thị - Hastings - tại sao chiến lược của tôi không hiệu quả?


16

Giả sử tôi có một hàm mà tôi muốn tích hợp Tất nhiên, giả sử về 0 tại các điểm cuối, không có lỗ hổng, chức năng đẹp. Một cách mà tôi đã đấu tranh là sử dụng thuật toán Metropolis-Hastings để tạo danh sách các mẫu từ phân phối tỷ lệ với , thiếu hằng số chuẩn hóa mà tôi sẽ gọi , và sau đó tính toán một số thống kê trên các này : g(x)

-g(x)dx.
g(x)x1,x2,Giáo dục,xng(x)
N= =-g(x)dx
p(x)f(x)x
1nΣTôi= =0nf(xTôi)-f(x)p(x)dx.

Vì , tôi có thể thay thế trong để hủy khỏi tích phân, dẫn đến biểu thức có dạng \ frac {1} {N} \ int _ {- \ infty} ^ {\ infty} \ frac {U (x)} {g (x)} g (x) dx = \ frac {1} {N} \ int _ {- \ infty} ^ \ infty U (x) dx. Vì vậy, với điều kiện U (x) tích hợp thành 1 dọc theo khu vực đó, tôi sẽ nhận được kết quả 1 / N , mà tôi chỉ có thể lấy đối ứng để có câu trả lời tôi muốn. Do đó, tôi có thể lấy phạm vi mẫu của mình (để sử dụng hiệu quả nhất các điểm) r = x_ \ max - x_ \ min và để U (x) = 1 / r cho mỗi mẫu tôi đã vẽ. Theo cách đó U (x)p(x)= =g(x)/Nf(x)= =Bạn(x)/g(x)gU(x)11/Nr=xmax-xphútU(x)=1/rU(x)

1N-Bạn(x)g(x)g(x)dx= =1N-Bạn(x)dx.
Bạn(x)11/Nr= =xtối đa-xtối thiểuBạn(x)= =1/rBạn(x)ước tính về 0 bên ngoài khu vực nơi các mẫu của tôi không có, nhưng tích hợp thành 1 trong khu vực đó. Vì vậy, nếu bây giờ tôi lấy giá trị mong đợi, tôi sẽ nhận được:
E[Bạn(x)g(x)]= =1N1nΣTôi= =0nBạn(x)g(x).

Tôi đã thử kiểm tra điều này trong R cho hàm mẫu g(x)= =e-x2 . Trong trường hợp này, tôi không sử dụng Metropolis-Hastings để tạo mẫu mà sử dụng xác suất thực tế rnormđể tạo mẫu (chỉ để kiểm tra). Tôi không hoàn toàn nhận được kết quả mà tôi đang tìm kiếm. Về cơ bản, biểu thức đầy đủ của những gì tôi sẽ tính là:

1n(xtối đa-xtối thiểu)ΣTôi= =0n1e-xTôi2.
Điều này trong lý thuyết của tôi sẽ đánh giá là 1/π . Nó tiến gần nhưng chắc chắn nó không hội tụ theo cách mong đợi, tôi có làm gì sai không?
ys = rnorm(1000000, 0, 1/sqrt(2))
r = max(ys) - min(ys)
sum(sapply(ys, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.6019741. 1/sqrt(pi) = 0.5641896

Chỉnh sửa cho CliffAB

Lý do tôi sử dụng phạm vi chỉ là để dễ dàng xác định hàm khác không trong khu vực có điểm của tôi, nhưng tích hợp thành trên phạm vi . Đặc điểm kỹ thuật đầy đủ của chức năng là: Tôi không phải sử dụng làm mật độ đồng nhất này. Tôi có thể đã sử dụng một số mật độ khác tích hợp với , ví dụ mật độ xác suất Tuy nhiên, điều này sẽ làm cho việc tổng hợp các mẫu riêng lẻ [ - , ] U ( x ) = { 11[-,]U(x)1P(x)=1

Bạn(x)= ={1xtối đa-xtối thiểuxtối đa>x>xtối thiểu0nếu không thì.
Bạn(x)11
P(x)= =1πe-x2.
1nΣTôi= =0nP(x)g(x)= =1nΣTôi= =0ne-xTôi2/πe-xTôi2= =1nΣTôi= =0n1π= =1π.

Tôi có thể thử kỹ thuật này cho các bản phân phối khác tích hợp với . Tuy nhiên, tôi vẫn muốn biết lý do tại sao nó không hoạt động để phân phối đồng đều.1


Chỉ nhanh chóng xem qua điều này, vì vậy tôi không chắc chắn chính xác lý do tại sao bạn quyết định sử dụng phạm vi (x). Điều kiện là nó hợp lệ, nó cực kỳ kém hiệu quả! Phạm vi của một mẫu có kích thước đó chỉ là về thống kê không ổn định nhất mà bạn có thể thực hiện.
Vách đá AB

@CliffAB Không có gì đặc biệt đối với tôi khi sử dụng phạm vi, ngoài việc xác định phân phối đồng đều trên khoảng thời gian mà điểm của tôi nằm. Xem các chỉnh sửa.
Mike Flynn

1
Tôi sẽ xem xét điều này sau này chi tiết hơn. Nhưng một điều cần xem xét là như thể x là một tập hợp các RV thống nhất, sau đó là , phạm vi . Nhưng nếu x là một tập hợp RV bình thường không suy biến, thì dưới dạng , . n(x)1nphạm vi(x)
Vách đá AB

@CliffAB bạn có thể đã đúng, tôi nghĩ lý do là giới hạn của tích phân không cố định, và do đó phương sai của công cụ ước tính sẽ không bao giờ hội tụ ...
Mike Flynn

Câu trả lời:


13

Đây là một câu hỏi thú vị nhất, liên quan đến vấn đề xấp xỉ hằng số chuẩn hóa của mật độ dựa trên đầu ra MCMC từ cùng mật độ . (Một nhận xét bên lề là giả định chính xác cần thực hiện là có thể tích hợp, về 0 ở vô cực là không đủ.)ggg

Theo tôi, mục có liên quan nhất về chủ đề này liên quan đến đề xuất của bạn là một bài viết của Gelfand và Dey (1994, JRSS B ), trong đó các tác giả phát triển một cách tiếp cận rất giống nhau để tìm khi tạo từ . Một kết quả trong bài báo này là, với bất kỳ mật độ xác suất [điều này tương đương với ] của bạn sao cho danh tính sau cho thấy một mẫu từ có thể tạo ra một

Xg(x)dx
p(x)αg(x)α(x)Bạn(x)
{x;α(x)>0}{x;g(x)>0}
Xα(x)g(x)p(x)dx= =Xα(x)Ndx= =1N
pđánh giá không thiên vị của của các ước lượng lấy mẫu quan trọng Rõ ràng, các màn trình diễn (tốc độ hội tụ, sự tồn tại của phương sai, & tc.) của công cụ ước tính không phụ thuộc vào sự lựa chọn của [ mặc dù kỳ vọng của nó không]. Trong khuôn khổ Bayes, một lựa chọn được Gelfand và Dey ủng hộ là lấy , mật độ trước. Điều này dẫn đến trong đó là hàm khả năng, vì1/N
η^= =1nΣTôi= =1nα(xTôi)g(xTôi)xTôi~iidp(x)
η^αα= =π
α(x)g(x)= =1(x)
(x)g(x)= =π(x)(x). Thật không may, kết quả ước lượng là ước lượng trung bình điều hòa , hay còn gọi là điều tồi tệ nhất Monte Carlo ước bao giờ hết bởi Radford Neal, từ Đại học Toronto. Vì vậy, nó không phải lúc nào cũng hoạt động tốt. Hoặc thậm chí hầu như không bao giờ.
N^= =nΣTôi= =1n1/(xTôi)

Ý tưởng của bạn về việc sử dụng phạm vi mẫu của bạn và đồng phục trong phạm vi đó được kết nối với vấn đề trung bình hài hòa: công cụ ước tính này không có phương sai nếu chỉ vì xuất hiện trong tử số (tôi nghi ngờ nó luôn có thể là trường hợp hỗ trợ không giới hạn!) và do đó nó hội tụ rất chậm đến hằng số chuẩn hóa. Chẳng hạn, nếu bạn chạy lại mã của mình nhiều lần, bạn sẽ nhận được các giá trị số rất khác nhau sau 10 lần lặp. Điều này có nghĩa là bạn thậm chí không thể tin tưởng vào độ lớn của câu trả lời.(tối thiểu(xTôi),tối đa(xTôi))điểm kinh nghiệm{x2}

Một sửa chữa chung cho vấn đề sai vô hạn này là để sử dụng cho mật độ tập trung hơn, sử dụng ví dụ các tứ phân vị của mẫu của bạn , vì sau đó vẫn còn giới hạn thấp hơn trong khoảng thời gian này.α(q0,25(xTôi),q0,75(xTôi))g

Khi điều chỉnh mã của bạn với mật độ mới này, phép tính gần đúng gần hơn với :1/π

ys = rnorm(1e6, 0, 1/sqrt(2))
r = quantile(ys,.75) - quantile(ys,.25)
yc=ys[(ys>quantile(ys,.25))&(ys<quantile(ys,.75))]
sum(sapply(yc, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.5649015. 1/sqrt(pi) = 0.5641896

Chúng tôi thảo luận về phương pháp này một cách chi tiết trong hai bài báo với Darren Wraithvới Jean-Michel Marin .

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.