วิธีตัวอย่างจาก ?


19

ฉันต้องการตัวอย่างตามความหนาแน่น โดยที่และเป็นบวกอย่างเคร่งครัด (แรงจูงใจ: สิ่งนี้อาจเป็นประโยชน์สำหรับการสุ่มตัวอย่างของกิ๊บส์เมื่อพารามิเตอร์รูปร่างของความหนาแน่นแกมมามีรูปแบบเหมือนกันมาก่อน)

f(a)cada1Γ(a)1(1,)(a)
cd

ไม่มีใครรู้วิธีการสุ่มตัวอย่างจากความหนาแน่นนี้ได้อย่างง่ายดาย? อาจจะเป็นมาตรฐานและมีบางสิ่งที่ฉันไม่รู้

ฉันคิดว่าอัลกอริธึมการคัดแยกที่โง่ที่จะทำงานได้มากหรือน้อย (หาโหมดของ , ตัวอย่างจากเครื่องแบบในกล่องขนาดใหญ่และปฏิเสธถ้า ) แต่ (i) มันไม่ได้มีประสิทธิภาพเลยและ (ii)จะใหญ่เกินไปสำหรับคอมพิวเตอร์ที่จะจัดการได้อย่างง่ายดายแม้ในระดับปานกลาง ขนาดใหญ่และD (โปรดทราบว่าโหมดสำหรับcขนาดใหญ่และdจะอยู่ที่a = cd )af(a,u)[0,10a]×[0,f(a)]u>f(a)f(a)cdcda=cd

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือใด ๆ !


+1 คำถามที่ดี ฉันไม่แน่ใจว่ามีวิธีการมาตรฐานอยู่หรือไม่
suncoolsu

คุณได้ตรวจสอบ (สำหรับแนวคิด) ในสถานที่ "ชัดเจน" แล้วเช่นเช่นข้อความของ Devroyeหรือไม่
พระคาร์ดินัล

ใช่ฉันได้ลองไอเดียจากข้อความของ Devroye แล้ว ได้ทำให้มันยากสำหรับผมที่จะไปได้ทุกที่กับส่วนใหญ่ของพวกเขาแม้ว่า ... วิธีการส่วนใหญ่ดูเหมือนจะต้องบูรณาการอย่างใดอย่างหนึ่ง (จะหา CDF), การสลายตัวเข้าไปในฟังก์ชั่นที่เรียบง่ายหรือวิ่งโดยฟังก์ชั่นที่เรียบง่าย .. . แต่ฟังก์ชั่นทำให้สิ่งเหล่านี้ยาก หากใครมีความคิดเกี่ยวกับสถานที่ที่จะมองหาแนวทางสำหรับปัญหาย่อยเหล่านี้ - เช่นที่อื่นฟังก์ชั่นจะปรากฏขึ้นในลักษณะ "จำเป็น" เช่นที่นี่ (ไม่ใช่แค่ค่าคงที่ normalizing) ในสถิติ - ซึ่งอาจเป็นประโยชน์มาก ฉัน! Γ(a)ΓΓ
NF

มีความแตกต่างกันมากระหว่างกรณีที่เป็นและ2 คุณจำเป็นต้องครอบคลุมทั้งสองกรณีนี้หรือไม่? cd<2cd2
whuber

1
นั่นเป็นเรื่องจริง - ขอบคุณ เราสามารถสมมติว่า2 cd2
NF

คำตอบ:


21

การสุ่มตัวอย่างการปฏิเสธที่จะทำงานได้ดีเป็นพิเศษเมื่อและเป็นที่เหมาะสมสำหรับd ประสบการณ์( 2 )cdexp(5)cdexp(2)

เพื่อทำให้คณิตศาสตร์ง่ายขึ้นให้เขียนx = aและสังเกตว่าk=cdx=a

f(x)kxΓ(x)dx

สำหรับ 1 การตั้งค่าx = u ที่3 / 2ให้x1x=u3/2

f(u)ku3/2Γ(u3/2)u1/2du

สำหรับ 1 เมื่อk ประสบการณ์( 5 ) , การกระจายนี้เป็นอย่างมากใกล้เคียงกับปกติ (และได้ใกล้ชิดเป็นkขนาดใหญ่ได้รับ) โดยเฉพาะคุณสามารถu1kexp(5)k

  1. ค้นหาโหมดของเป็นตัวเลข (โดยใช้เช่น Newton-Raphson)f(u)

  2. ขยายไปยังลำดับที่สองเกี่ยวกับโหมดของมันlogf(u)

สิ่งนี้ให้ผลพารามิเตอร์ของการแจกแจงแบบปกติโดยประมาณอย่างใกล้ชิด หากต้องการความแม่นยำสูง Normal ที่ประมาณนี้จะควบคุมยกเว้นในส่วนท้ายสุด (เมื่อk < exp ( 5 )คุณอาจต้องปรับขนาดไฟล์ pdf ปกติเล็กน้อยเพื่อให้แน่ใจว่ามีการปกครอง)f(u)k<exp(5)

การทำงานเบื้องต้นนี้สำหรับค่ากำหนดและการประมาณค่าคงที่M > 1 (ดังอธิบายด้านล่าง) การได้รับตัวแปรแบบสุ่มนั้นเป็นเรื่องของ:kM>1

  1. วาดมูลค่าจากอำนาจเหนือปกติกระจายกรัม( U )ug(u)

  2. หากหรือหากชุดรูปแบบใหม่Xมีค่าเกินf ( u ) / ( M g ( u ) )ให้กลับไปที่ขั้นตอนที่ 1u<1Xf(u)/(Mg(u))

  3. ชุด 2x=u3/2

จำนวนที่คาดหวังของการประเมินของเนื่องจากความคลาดเคลื่อนระหว่างgและfนั้นสูงกว่า 1 เล็กน้อยเท่านั้น (การประเมินเพิ่มเติมบางอย่างจะเกิดขึ้นเนื่องจากการปฏิเสธการแปรผันน้อยกว่า1แต่แม้ว่าkจะต่ำกว่า2ความถี่ เหตุการณ์เล็ก ๆ )fgf1k2

Plot of f and g for k=5

พล็อตนี้แสดงให้เห็นว่าลอการิทึมของกรัมและFเป็นหน้าที่ของUสำหรับ ) เนื่องจากกราฟอยู่ใกล้เราจึงต้องตรวจสอบอัตราส่วนเพื่อดูว่าเกิดอะไรขึ้น:k=exp(5)

plot of log ratio

การแสดงนี้อัตราส่วนการเข้าสู่ระบบ ; ปัจจัยของM = exp ( 0.004 )ถูกรวมเพื่อรับรองว่าลอการิทึมนั้นเป็นค่าบวกตลอดส่วนหลักของการแจกแจง นั่นคือเพื่อรับประกันM g ( u ) f ( u )ยกเว้นอาจเป็นไปได้ในภูมิภาคที่มีความน่าจะเป็นเล็กน้อย ด้วยการทำให้Mมีขนาดใหญ่เพียงพอคุณสามารถรับประกันได้ว่าM glog(exp(0.004)g(u)/f(u))M=exp(0.004)Mg(u)f(u)MMgครอบงำในทุก ๆ แต่หางที่รุนแรงที่สุด (ซึ่งแทบจะไม่มีโอกาสถูกเลือกในการจำลอง) อย่างไรก็ตามM ที่ใหญ่กว่าคือการปฏิเสธที่เกิดขึ้นบ่อยครั้งมากขึ้น เมื่อkโตขึ้นขนาดใหญ่Mสามารถเลือกได้ใกล้กับ1ซึ่งไม่เกิดการลงโทษfMkM1

วิธีการที่คล้ายกันนี้ใช้ได้กับแต่อาจจำเป็นต้องใช้ค่าM ที่ค่อนข้างใหญ่เมื่อexp ( 2 ) < k < exp ( 5 )เนื่องจากf ( u )ไม่สมมาตรอย่างเห็นได้ชัด ตัวอย่างเช่นด้วยk = exp ( 2 )เพื่อให้ได้g ที่แม่นยำพอสมควรเราจำเป็นต้องตั้งM = 1 :k>exp(2)Mexp(2)<k<exp(5)f(u)k=exp(2)gM=1

Plot for k=2

เส้นโค้งสีแดงบนเป็นกราฟของในขณะที่เส้นโค้งสีฟ้าต่ำคือกราฟของบันทึก( ( U ) ) การปฏิเสธการสุ่มตัวอย่างของf ที่สัมพันธ์กับexp ( 1 ) gจะทำให้ประมาณ 2 ใน 3 ของการทดลองใช้ทั้งหมดถูกปฏิเสธปฏิเสธความพยายามสามเท่า: ยังไม่เลว หางขวา ( U > 10หรือx > 10 3 / 2 ~ 30log(exp(1)g(u))log(f(u))fexp(1)gu>10x>103/230) จะอยู่ภายใต้ตัวแทนในการสุ่มตัวอย่างการปฏิเสธ (เนื่องจากไม่ได้ครองfอยู่ที่นั่นอีกต่อไปแต่หางนั้นประกอบด้วยค่าน้อยกว่าexp ( - 20 ) 10 - 9ของความน่าจะเป็นทั้งหมดexp(1)gfexp(20)109

เพื่อสรุปหลังจากความพยายามเริ่มต้นในการคำนวณโหมดและประเมินระยะกำลังสองของอนุกรมกำลังของรอบโหมด - ความพยายามที่ต้องการการประเมินฟังก์ชั่นหลายสิบครั้ง - คุณสามารถใช้การสุ่มตัวอย่างการปฏิเสธที่ ค่าใช้จ่ายที่คาดหวังจากการประเมินผล 1 ถึง 3 (หรือมากกว่านั้น) ต่อการเปลี่ยนแปลง ตัวคูณค่าใช้จ่ายลดลงอย่างรวดเร็วเป็น 1 เมื่อk = c dเพิ่มขึ้นเกินกว่า 5f(u)k=cd

แม้ว่าจะต้องการเพียงแค่การดึงจากวิธีการนี้ก็สมเหตุสมผล มันเข้ามาในตัวของมันเองเมื่อต้องการการดึงอิสระจำนวนมากสำหรับค่าk ที่เท่ากันดังนั้นค่าโสหุ้ยของการคำนวณเริ่มต้นจะถูกตัดจำหน่ายเป็นจำนวนมากfk


ภาคผนวก

@Cardinal ได้ขอให้มีการสนับสนุนการวิเคราะห์โบกมือด้วยมือในระหว่างการพิจารณา โดยเฉพาะอย่างยิ่งจึงควรเปลี่ยนแปลงทำให้การกระจายปกติประมาณ?x=u3/2

ในแง่ของทฤษฎีของการแปลง Box-Coxมันเป็นธรรมชาติที่จะแสวงหาการเปลี่ยนแปลงพลังงานของรูปแบบ (สำหรับค่าคงที่αหวังว่าจะไม่แตกต่างจากเอกภาพ) ที่จะทำให้การกระจาย "ปกติ" มากขึ้น โปรดจำไว้ว่าการแจกแจงปกติทั้งหมดนั้นมีลักษณะเพียงอย่างเดียว: ลอการิทึมของไฟล์ PDF นั้นเป็นกำลังสองอย่างหมดจดโดยไม่มีเงื่อนไขเป็นเส้นตรงและไม่มีคำสั่งสูงกว่า ดังนั้นเราจึงสามารถใช้ใด ๆรูปแบบไฟล์ PDF และเปรียบเทียบกับการกระจายปกติโดยการขยายลอการิทึมที่เป็นชุดไฟรอบของจุดสูงสุด (สูงสุด) เราหาค่าของαที่ทำให้ (อย่างน้อย) ที่สามx=uαααอย่างน้อยก็ประมาณ: นั่นคือสิ่งที่ดีที่สุดที่เราสามารถคาดหวังได้ว่าสัมประสิทธิ์อิสระเพียงอย่างเดียวจะประสบความสำเร็จ บ่อยครั้งสิ่งนี้ทำงานได้ดี

แต่จะมีวิธีจัดการกับการกระจายตัวนี้ได้อย่างไร? เมื่อส่งผลต่อการเปลี่ยนแปลงพลังงาน PDF จะเป็น

f(u)=kuαΓ(uα)uα1.

ใช้ลอการิทึมของมันและใช้การขยาย asymptoticของของ Stirling :log(Γ)

log(f(u))log(k)uα+(α1)log(u)αuαlog(u)+uαlog(2πuα)/2+cuα

(สำหรับค่าเล็ก ๆ ของซึ่งไม่คงที่) งานนี้ให้αเป็นบวกซึ่งเราจะถือว่าเป็นกรณี (ไม่เช่นนั้นเราไม่สามารถละเลยส่วนที่เหลือของการขยาย)cα

คำนวณหาอนุพันธ์อันดับสามของมัน (ซึ่งเมื่อหารด้วยจะเป็นค่าสัมประสิทธิ์ของกำลังสามของuในอนุกรมกำลัง) และใช้ประโยชน์จากความจริงที่จุดสูงสุดอนุพันธ์อันดับแรกจะต้องเป็นศูนย์ สิ่งนี้ลดความซับซ้อนของอนุพันธ์อันดับสามอย่างมากโดยให้ (ประมาณเพราะเราไม่สนใจอนุพันธ์ของc )3!uc

12u(3+α)α(2α(2α3)u2α+(α25α+6)uα+12cα).

เมื่อไม่เล็กเกินไปคุณจะใหญ่อย่างแน่นอน เนื่องจากαเป็นบวกเทอมที่มีอิทธิพลในนิพจน์นี้คือกำลัง2 αซึ่งเราสามารถตั้งค่าเป็นศูนย์ได้โดยการทำให้สัมประสิทธิ์หายไป:kuα2α

2α3=0.

นั่นเป็นเหตุผลที่ผลงานให้ดี: มีทางเลือกนี้ค่าสัมประสิทธิ์ของระยะลูกบาศก์รอบพฤติกรรมสูงสุดเช่นยู- 3ซึ่งอยู่ใกล้กับประสบการณ์( - 2 k ) เมื่อkมีค่าเกิน 10 หรือมากกว่านั้นคุณสามารถลืมมันได้จริงและมันก็เล็กพอสมควรแม้กระทั่งkถึง 2 พลังงานที่สูงกว่าจากลำดับที่สี่มีบทบาทน้อยลงเรื่อย ๆ เนื่องจากkมีขนาดใหญ่เนื่องจากสัมประสิทธิ์ของมันเพิ่มขึ้น เล็กลงด้วยเช่นกัน อนึ่งการคำนวณเดียวกัน (ขึ้นอยู่กับอนุพันธ์อันดับสองของl o g ( fα=3/2u3exp(2k)kkklog(f(u)) at its peak) show the standard deviation of this Normal approximation is slightly less than 23exp(k/6), with the error proportional to exp(k/2).


(+1) คำตอบที่ดี บางทีคุณอาจขยายแรงจูงใจสั้น ๆ เพื่อเลือกตัวแปรการเปลี่ยนแปลง
พระคาร์ดินัล

นอกจากนี้ที่ดี นี่เป็นคำตอบที่สมบูรณ์มาก!
พระคาร์ดินัล

11

ฉันชอบคำตอบของ @ whuber มาก มันน่าจะมีประสิทธิภาพมากและมีการวิเคราะห์ที่สวยงาม แต่มันต้องการความเข้าใจที่ลึกซึ้งเกี่ยวกับการกระจายตัวนี้ สำหรับสถานการณ์ที่คุณไม่มีความเข้าใจด้านนั้น (ดังนั้นสำหรับการแจกแจงที่แตกต่างกัน), ฉันยังชอบวิธีการต่อไปนี้ที่ใช้กับการแจกแจงทั้งหมดที่ PDF นั้นสามารถเปลี่ยนแปลงได้สองเท่าและอนุพันธ์อันดับสองมีรากมากมาย มันต้องใช้งานค่อนข้างน้อยในการตั้งค่า แต่หลังจากนั้นคุณมีเครื่องมือที่ใช้งานได้สำหรับการกระจายส่วนใหญ่ที่คุณสามารถโยนได้

โดยพื้นฐานแล้วแนวคิดคือการใช้ขอบเขตบนเชิงเส้นเป็นเส้นตรงเป็น PDF ที่คุณปรับตัวเมื่อคุณทำการสุ่มตัวอย่างการปฏิเสธ ในขณะเดียวกันคุณจะมีเส้นตรงที่ต่ำกว่าเป็นเส้นตรงผูกพันกับ PDF ซึ่งทำให้คุณไม่ต้องประเมิน PDF บ่อยเกินไป ขอบเขตบนและล่างจะได้รับจากคอร์ดและแทนเจนต์ให้กับกราฟ PDF การแบ่งเริ่มต้นเป็นช่วงเวลาเป็นเช่นนั้นในแต่ละช่วงเวลา PDF เป็นทั้งเว้าหรือนูนทั้งหมด เมื่อใดก็ตามที่คุณต้องปฏิเสธจุด (x, y) คุณจะแบ่งช่วงเวลานั้นที่ x (คุณสามารถแบ่งส่วนพิเศษที่ x ได้หากคุณต้องคำนวณ PDF เพราะขอบล่างนั้นแย่จริงๆ) ทำให้การแบ่งย่อยเกิดขึ้นบ่อยครั้งโดยเฉพาะเมื่อขอบเขต (และล่าง) แย่ลงดังนั้นคุณจะได้คะแนนที่ดีจริงๆ การประมาณ PDF ของคุณฟรี โดยมีรายละเอียดเล็ก ๆ น้อย ๆ เรื่องยุ่งยากที่จะได้รับสิทธิ แต่ฉันพยายามที่จะอธิบายที่สุดของพวกเขาในครั้งนี้ชุด ของ บล็อก โพสต์ - โดยเฉพาะอย่างยิ่งสุดท้าย

Those posts don't discuss what to do if the PDF is unbounded either in domain or in values; I'd recommend the somewhat obvious solution of either doing a transformation that makes them finite (which would be hard to automate) or using a cutoff. I would choose the cutoff depending on the total number of points you expect to generate, say N, and choose the cutoff so that the removed part has less than 1/(10N) probability. (This is easy enough if you have a closed form for the CDF; otherwise it might also be tricky.)

This method is implemented in Maple as the default method for user-defined continuous distributions. (Full disclosure - I work for Maplesoft.)


ฉันรันตัวอย่างแล้วสร้าง 10 ^ 4 คะแนนสำหรับ c = 2, d = 3 โดยระบุ [1, 100] เป็นช่วงเริ่มต้นสำหรับค่า:

graph

มีการปฏิเสธ 23 ครั้ง (สีแดง), 51 คะแนน "จากการทดลอง" ซึ่งเป็นเวลาระหว่างขอบเขตล่างกับ PDF จริงและ 9949 คะแนนซึ่งได้รับการยอมรับหลังจากตรวจสอบความไม่เท่าเทียมกันเชิงเส้นเท่านั้น นั่นคือการประเมิน 74 PDF ทั้งหมดหรือประมาณหนึ่งการประเมิน PDF ต่อ 135 คะแนน อัตราส่วนควรดีขึ้นเมื่อคุณสร้างคะแนนมากขึ้นเนื่องจากการประมาณดีขึ้นและดีขึ้น (และในทางกลับกันหากคุณสร้างคะแนนเพียงไม่กี่คะแนนอัตราส่วนนั้นแย่กว่า)


And by the way - if you need to evaluate the PDF only very infrequently because you have a good lower bound for it, you can afford to take longer for it, so you can just use a bignum library (maybe even MPFR?) and evaluate the Gamma function in that without too much fear of overflow.
Erik P.

(+1) This is a nice approach. Thanks for sharing it.
whuber

The overflow problem is handled by exploiting (simple) relationships among Gammas. The idea is that after normalizing the peak to be around 1, the only calculations that matter are of the form Γ(exp(cd))/Γ(x) where x is fairly close to exp(k)--all the rest will be so close to zero you can neglect them. That ratio can be simplified to finding two values of Γ for arguments between 1 and 2 plus a sum of a small number of logarithms: no overflow there.
whuber

@whuber re: Gammas: Ah yes - I see that you had suggested this above as well. Thanks!
Erik P.

3

คุณสามารถทำได้โดยใช้วิธีการกลับรายการซึ่งบอกว่าถ้าคุณเสียบตัวแปรสุ่ม (0,1) ใน CDF แบบผกผันคุณจะได้รับผลเสมอจากการแจกแจง ฉันได้รวมรหัส R ด้านล่างที่ทำสิ่งนี้และจากการตรวจสอบเล็กน้อยที่ฉันทำมันทำงานได้ดี แต่มันค่อนข้างเลอะเทอะและฉันแน่ใจว่าคุณสามารถเพิ่มประสิทธิภาพได้

หากคุณไม่คุ้นเคยกับ R lgamma () เป็นบันทึกการทำงานของแกมม่า รวม () คำนวณอินทิกรัล จำกัด 1-D ที่แน่นอน uniroot () คำนวณรูตของฟังก์ชันโดยใช้การแบ่ง 1-D

# density. using the log-gamma gives a more numerically stable return for 
# the subsequent numerical integration (will not work without this trick)
f = function(x,c,d) exp( x*log(c) + (x-1)*log(d) - lgamma(x) )

# brute force calculation of the CDF, calculating the normalizing constant numerically
F = function(x,c,d) 
{
   g = function(x) f(x,c,d)
   return( integrate(g,1,x)$val/integrate(g,1,Inf)$val )
}

# Using bisection to find where the CDF equals p, to give the inverse CDF. This works 
# since the density given in the problem corresponds to a continuous CDF. 
F_1 = function(p,c,d) 
{
   Q = function(x) F(x,c,d)-p
   return( uniroot(Q, c(1+1e-10, 1e4))$root )
}

# plug uniform(0,1)'s into the inverse CDF. Testing for c=3, d=4. 
G = function(x) F_1(x,3,4)
z = sapply(runif(1000),G)

# simulated mean
mean(z)
[1] 13.10915

# exact mean
g = function(x) f(x,3,4)
nc = integrate(g,1,Inf)$val
h = function(x) f(x,3,4)*x/nc
integrate(h,1,Inf)$val
[1] 13.00002 

# simulated second moment
mean(z^2)
[1] 183.0266

# exact second moment
g = function(x) f(x,3,4)
nc = integrate(g,1,Inf)$val
h = function(x) f(x,3,4)*(x^2)/nc
integrate(h,1,Inf)$val
[1] 181.0003

# estimated density from the sample
plot(density(z))

# true density 
s = seq(1,25,length=1000)
plot(s, f(s,3,4), type="l", lwd=3)

สิ่งสำคัญที่ฉันทำที่นี่โดยพลการคือ (1,10000)เป็นวงเล็บเหลี่ยมที่เพียงพอสำหรับการแบ่งครึ่ง - ฉันขี้เกียจเกี่ยวกับเรื่องนี้และอาจมีวิธีที่มีประสิทธิภาพมากกว่าในการเลือกวงเล็บนี้ สำหรับค่าที่มีขนาดใหญ่มากการคำนวณเชิงตัวเลขของ CDF (พูด>100000) ล้มเหลวดังนั้นวงเล็บต้องอยู่ต่ำกว่านี้ CDF นั้นเท่ากับ 1 ณ จุดเหล่านั้นอย่างมีประสิทธิภาพ (เว้นแต่,dมีขนาดใหญ่มาก ) ดังนั้นอาจมีบางสิ่งบางอย่างที่อาจป้องกันการคำนวณผิดของ CDF สำหรับค่าอินพุตที่มีขนาดใหญ่มาก

แก้ไข:เมื่อdมีขนาดใหญ่มากปัญหาเกี่ยวกับตัวเลขเกิดขึ้นกับวิธีนี้ เมื่อ whuber ชี้ให้เห็นในความคิดเห็นเมื่อเกิดเหตุการณ์นี้ขึ้นการกระจายจะลดลงตามโหมดของมันทำให้เป็นปัญหาการสุ่มตัวอย่างเล็กน้อย


1
The method is correct, but awfully painful! How many function evaluations do you suppose are needed for a single random variate? Thousands? Tens of thousands?
whuber

There is a lot of computing, but it doesn't actually take very long - certainly much faster than rejection sampling. The simulation I showed above took less than a minute. The problem is that when cd is large, it still breaks. This is basically because it has to calculate the equivalent of (cd)x for large x. Any solution proposed will have that problem though - I'm trying to figure out if there's a way to do this on the log scale and transforming back.
Macro

1
A minute for 1,000 variates isn't very good: you will wait hours for one good Monte-Carlo simulation. You can go four orders of magnitude faster using rejection sampling. The trick is to reject with a close approximation of f rather than with respect to a uniform distribution. Concerning the calculation: compute alog(cd)log(Γ(a)) (by computing log Gamma directly, of course), then exponentiate. That avoids overflow.
whuber

นั่นคือสิ่งที่ฉันทำเพื่อการคำนวณ - มันยังไม่หลีกเลี่ยงการล้น คุณไม่สามารถยกกำลังตัวเลขได้มากกว่า 500 หน่วยในคอมพิวเตอร์ ปริมาณนั้นใหญ่กว่านั้นมาก ฉันหมายถึง "ค่อนข้างดี" เมื่อเปรียบเทียบกับการปฏิเสธการสุ่มตัวอย่าง OP ที่กล่าวถึง
มาโคร

1
I did notice that the "standard deviation rule" that normals follow (68% within 1, 95% within 2, 99.7% within 3) did apply. So basically for large cd it's a point mass at the mode. From what you say, the threshold where this occurs before the numerical problems, so this still works. Thanks for the insight
Macro
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.