การรวมตัวของมหานคร - เฮสติ้งส์ - ทำไมกลยุทธ์ของฉันจึงไม่ทำงาน


16

สมมติว่าฉันมีฟังก์ชั่นที่ฉันต้องการรวม แน่นอนสมมติว่าไปที่ศูนย์ที่จุดสิ้นสุดไม่มีการระเบิดฟังก์ชันที่ดี วิธีหนึ่งที่ฉันได้รับการเล่นซอกับคือการใช้อัลกอริทึม Metropolis-เฮสติ้งส์เพื่อสร้างรายการของตัวอย่างจากการกระจายสัดส่วนการซึ่งจะหายไปอย่างต่อเนื่องการฟื้นฟู ซึ่งฉันจะเรียกแล้วคำนวณสถิติf (x)บนxเหล่านี้: g(x)

g(x)dx.
g(x)x1,x2,,xng(x)
N=g(x)dx
p(x)f(x)x
1ni=0nf(xi)f(x)p(x)dx.

ตั้งแต่p(x)=g(x)/Nฉันสามารถแทนที่f(x)=U(x)/g(x)เพื่อยกเลิกgจากอินทิกรัลส่งผลให้เกิดการแสดงออกของรูปแบบ

1NU(x)g(x)g(x)dx=1NU(x)dx.
ดังนั้นหากU(x)รวมกับ1ตามภูมิภาคนั้นฉันควรได้ผลลัพธ์1/Nซึ่งฉันสามารถเอาส่วนกลับซึ่งกันและกันเพื่อได้คำตอบที่ฉันต้องการ ดังนั้นฉันสามารถใช้ช่วงของตัวอย่างของฉัน (เพื่อใช้คะแนนอย่างมีประสิทธิภาพมากที่สุด) r=xmaxxminและให้U(x)=1/rสำหรับแต่ละตัวอย่างที่ฉันวาด ด้วยวิธีนี้U(x)หาค่าเป็นศูนย์นอกขอบเขตที่ตัวอย่างของฉันไม่ได้ แต่รวมกับ1ในพื้นที่นั้น ดังนั้นถ้าฉันเอาค่าที่คาดหวังมาฉันควรได้รับ:
E[U(x)g(x)]=1N1ni=0nU(x)g(x).

ฉันพยายามทดสอบนี้ใน R สำหรับฟังก์ชันตัวอย่าง2} ในกรณีนี้ฉันไม่ใช้ Metropolis-Hastings เพื่อสร้างตัวอย่าง แต่ใช้ความน่าจะเป็นที่แท้จริงด้วยเพื่อสร้างตัวอย่าง (เพื่อทดสอบ) ฉันไม่ได้รับผลลัพธ์ที่ต้องการ โดยพื้นฐานแล้วการแสดงออกอย่างเต็มรูปแบบของสิ่งที่ฉันจะคำนวณคือ: นี้ควรในทฤษฎีของผมประเมินปี่} มันเข้าใกล้ แต่แน่นอนไม่ได้มาบรรจบกันตามที่คาดหวังฉันจะทำอะไรผิดหรือเปล่า? 1g(x)=ex2rnorm 1/

1n(xmaxxmin)i=0n1exi2.
1/π
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

แก้ไขสำหรับ CliffAB

เหตุผลที่ผมใช้ช่วงเป็นเพียงเพื่อให้ง่ายต่อการกำหนดฟังก์ชั่นที่เป็นที่ไม่ใช่ศูนย์ภาคเหนือที่จุดของฉันมี แต่บูรณาการที่ในช่วงinfty] ข้อมูลจำเพาะทั้งหมดของฟังก์ชันคือ: ฉันไม่จำเป็นต้องใช้เป็นความหนาแน่นสม่ำเสมอ ฉันอาจใช้ความหนาแน่นอื่น ๆ ที่รวมเข้ากับตัวอย่างเช่นความหนาแน่นของความน่าจะเป็น อย่างไรก็ตามสิ่งนี้จะทำให้การสรุปตัวอย่างแต่ละตัวอย่างเล็ก ๆ น้อย ๆ คือ [ - , ] U ( x ) = { 11[,]U(x)1P(x)=1

U(x)={1xmaxxminxmax>x>xmin0otherwise.
U(x)1 1
P(x)=1πex2.
1ni=0nP(x)g(x)=1ni=0nexi2/πexi2=1ni=0n1π=1π.

ผมอาจจะลองเทคนิคนี้สำหรับการแจกแจงอื่น ๆ ที่รวมไป1อย่างไรก็ตามฉันยังต้องการที่จะรู้ว่าทำไมมันใช้งานไม่ได้กับการกระจายแบบสม่ำเสมอ1


ดูอย่างรวดเร็วเท่านั้นดังนั้นฉันไม่แน่ใจว่าทำไมคุณถึงเลือกใช้ช่วง (x) เงื่อนไขว่ามันถูกต้องมันไม่มีประสิทธิภาพมาก! ช่วงของขนาดตัวอย่างนั้นเป็นเพียงสถิติที่ไม่เสถียรที่สุดที่คุณสามารถทำได้
หน้าผา AB

@Cliffab ไม่มีอะไรพิเศษเป็นพิเศษเกี่ยวกับฉันโดยใช้ช่วงนอกเหนือจากการกำหนดการแจกแจงแบบสม่ำเสมอในช่วงเวลาที่คะแนนของฉันอยู่ ดูการแก้ไข
Mike Flynn

1
ฉันจะดูรายละเอียดเพิ่มเติมในภายหลัง แต่สิ่งที่ต้องพิจารณาก็คือเช่นถ้า x เป็นชุดของเครื่องแบบ RV ที่แล้วเป็นช่วง1 แต่ถ้า x เป็นชุดของการไม่ degenarate RV ปกติแล้วเป็น ,\ n(x)1nrange(x)
Cliff AB

@CliffAB คุณอาจพูดถูกฉันคิดว่าเหตุผลก็คือขอบเขตของอินทิกรัลไม่คงที่ดังนั้นความแปรปรวนของตัวประมาณจะไม่มาบรรจบกัน ...
Mike Flynn

คำตอบ:


13

นี่เป็นคำถามที่น่าสนใจที่สุดซึ่งเกี่ยวข้องกับปัญหาของการประมาณค่าคงที่ normalizing ของความหนาแน่นgตามเอาต์พุต MCMC จากความหนาแน่นgเดียวกัน (คำพูดจากด้านข้างคือการสันนิษฐานที่ถูกต้องที่จะทำคือการที่gนั้นสามารถรวมเข้าด้วยกันได้การไปที่ศูนย์ที่อินฟินิตี้นั้นไม่เพียงพอ)

ในความคิดของฉันรายการที่เกี่ยวข้องมากที่สุดในหัวข้อนี้เกี่ยวกับข้อเสนอแนะของคุณคือบทความโดย Gelfand และ Dey (1994, JRSS B ) ซึ่งผู้เขียนได้พัฒนาวิธีการที่คล้ายกันมากในการหาเมื่อสร้างจาก

Xg(x)dx
p(x)g(x)α(x)U(x)
{x;α(x)>0}{x;g(x)>0}
Xα(x)g(x)p(x)dx=Xα(x)Ndx=1N
p1/N
η^=1ni=1nα(xi)g(xi)xiiidp(x)
η^αα=π
α(x)g(x)=1(x)
(x)g(x)=π(x)(x)
N^=ni=1n1/(xi)

(min(xi),max(xi))exp{x2}

α(q.25(xi),q.75(xi))g

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

เราจะหารือถึงวิธีการนี้ในรายละเอียดในเอกสารสองกับคาร์เรนเจตภูตและกับฌองมิเชลมาริน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.