ย้อนกลับเทคนิค Box-Mueller : จากแต่ละคู่ของ normals , เครื่องแบบอิสระสองชุดสามารถสร้างได้เป็นatan2 ( Y , X ) (ในช่วง[ - π , π ] ) และexp ( - ( X 2 + Y 2 ) / 2 ) (ตามช่วงเวลา[ 0 , 1 ] )(X,Y)atan2(Y,X)[−π,π]exp(−(X2+Y2)/2)[0,1]
รับภาวะปกติในกลุ่มของสองคนและสรุปสี่เหลี่ยมของพวกเขาที่จะได้รับลำดับของ variates Y 1 , Y 2 , ... , Y ฉัน , ... การแสดงออกที่ได้รับจากคู่χ22Y1,Y2,…,Yi,…
Xi=Y2iY2i−1+Y2i
จะมีการแจกแจงแบบซึ่งเป็นรูปแบบเดียวกันเบต้า( 1 , 1 )
ว่าสิ่งนี้ต้องการเพียงแค่เลขคณิตพื้นฐานอย่างง่ายเท่านั้นที่ควรมีความชัดเจน
เนื่องจากการกระจายที่แน่นอนของสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันของตัวอย่างสี่คู่จากค่ามาตรฐาน bivariate การแจกแจงแบบปกติมีการกระจายอย่างสม่ำเสมอบนเราอาจใช้ค่าปกติเป็นกลุ่มสี่คู่ (นั่นคือแปดค่าใน แต่ละชุด) และคืนค่าสัมประสิทธิ์สหสัมพันธ์ของคู่เหล่านี้ (สิ่งนี้เกี่ยวข้องกับการคำนวณอย่างง่ายบวกกับการดำเนินการที่สองของรูท)[ - 1 , 1 ]
มันได้รับการรู้จักกันมาตั้งแต่สมัยโบราณที่ฉายรูปทรงกระบอกของทรงกลม (พื้นผิวในสามพื้นที่) เป็นพื้นที่ที่เท่าเทียมกัน นี่ก็หมายความว่าในการประมาณการของการกระจายเครื่องแบบบนทรงกลมทั้งพิกัดแนวนอน (สอดคล้องกับลองจิจูด) และพิกัดแนวตั้ง (ตรงกับละติจูด) จะมีการกระจายเครื่องแบบ เนื่องจากมาตรฐาน trivariate การแจกแจงแบบปกตินั้นมีความสมมาตรเป็นทรงกลม การรับลองจิจูดเป็นการคำนวณแบบเดียวกับมุมในวิธี Box-Mueller ( qv ) แต่ละติจูดที่คาดการณ์นั้นใหม่ การฉายบนทรงกลมจะทำให้พิกัดเป็นสามเท่าและ ณ จุดนั้น zคือละติจูดที่คาดการณ์ ดังนั้นให้ใช้ชุดรูปแบบปกติในกลุ่มของสาม, X 3 i - 2 , X 3 i - 1 , X 3 i , และคำนวณ( x , y, z)ZX3 i - 2, X3 i - 1, X3 ฉัน
X3 ฉันX23 i - 2+ X23 i - 1+ X23 ฉัน----------------√
สำหรับ .i = 1 , 2 , 3 , ...
เนื่องจากระบบคอมพิวเตอร์ส่วนใหญ่เป็นตัวแทนของตัวเลขในระบบเลขฐานสองการสร้างหมายเลขชุดมักจะเริ่มต้นด้วยการผลิตจำนวนเต็มกระจายอย่างสม่ำเสมอระหว่างและ2 32 - 1 (หรือบางพลังงานสูง2ที่เกี่ยวข้องกับความยาวของคำคอมพิวเตอร์) และ rescaling พวกเขาตามต้องการ จำนวนเต็มเช่นนี้แสดงอยู่ภายในว่าเป็นสตริงของเลขฐานสอง32ตัว เราสามารถรับบิตสุ่มอิสระโดยการเปรียบเทียบตัวแปรปกติกับค่ามัธยฐานของมัน ดังนั้นจึงพอเพียงที่จะแบ่งตัวแปร Normal ออกเป็นกลุ่มขนาดเท่ากับจำนวนบิตที่ต้องการเปรียบเทียบแต่ละอันกับค่าเฉลี่ยและรวบรวมลำดับผลลัพธ์ของผลลัพธ์ที่ได้จริง / เท็จเป็นเลขฐานสอง เขียนk0232- 1232kสำหรับจำนวนบิตและสำหรับเครื่องหมาย (นั่นคือH ( x ) = 1เมื่อx > 0และH ( x ) = 0 เป็นอย่างอื่น) เราสามารถแสดงค่าเครื่องแบบปกติที่ได้ผลลัพธ์ใน[ 0 , 1 )ด้วยสูตรHH( x ) = 1x > 0H( x ) = 0[ 0 , 1 )
Σj = 0k - 1H( Xki−j)2−j−1.
ตัวแปรสามารถดึงได้จากการแจกแจงแบบต่อเนื่องที่มีค่ามัธยฐานเป็น0 (เช่น Normal Standard) พวกเขาจะถูกประมวลผลในกลุ่มของkกับแต่ละกลุ่มผลิตหนึ่งค่าเหมือนกันหลอกXn0k
การสุ่มตัวอย่างการปฏิเสธเป็นวิธีมาตรฐานที่มีความยืดหยุ่นและมีประสิทธิภาพในการวาดรูปแบบสุ่มจากการแจกแจงโดยพลการ สมมติว่าการกระจายเป้าหมายมี PDF ฉฉค่าจะถูกวาดขึ้นตามอีกการกระจายกับรูปแบบไฟล์ PDF กรัม ในขั้นตอนการปฏิเสธค่าเครื่องแบบU ที่อยู่ระหว่าง0และg ( Y )จะถูกวาดอย่างอิสระจากYและเมื่อเทียบกับf ( Y ) : ถ้ามันมีขนาดเล็กกว่าYYก.ยู0ก.( Y)Yฉ( Y)Yจะถูกเก็บไว้ แต่กระบวนการจะทำซ้ำ วิธีนี้ดูเหมือนจะเป็นวงกลม แต่เราจะสร้างชุดคำสั่งแบบแปรผันได้ด้วยกระบวนการที่ต้องการชุดคำสั่งแบบชุดเริ่มต้นได้อย่างไร
คำตอบคือเราไม่จำเป็นต้องมีชุดคำสั่งที่เหมือนกันเพื่อดำเนินขั้นตอนการปฏิเสธ แต่ (สมมติว่า ) เราสามารถพลิกเหรียญที่ยุติธรรมเพื่อให้ได้0หรือ1แบบสุ่ม นี้จะถูกตีความว่าเป็นบิตแรกในฐานเป็นตัวแทนของเครื่องแบบตัวแปรUในช่วง[ 0 , 1 ) เมื่อผลเป็น0หมายถึงการที่0 ≤ U < 1 / 2 ; มิฉะนั้น1 / 2 ≤ U < 1 ก.( Y) ≠ 001ยู[ 0 , 1 )00 ≤ คุณ< 1 / 21 / 2 ≤ U< 1ครึ่งหนึ่งของเวลานี้ก็เพียงพอที่จะตัดสินใจขั้นตอนการปฏิเสธ:ถ้าแต่เหรียญเป็น0 , Yควรจะได้รับการยอมรับ ถ้าฉ( Y ) /กรัม( Y ) < 1 / 2แต่เหรียญคือ1 , Yควรจะปฏิเสธ; มิฉะนั้นเราต้องพลิกเหรียญอีกครั้งเพื่อให้ได้บิตถัดไปของU เพราะ - ไม่ว่าค่าf ใด( Y)ฉ( Y) / g( Y) ≥ 1 / 20Yฉ( Y) / g( Y) < 1 / 21Yยูมี - มี 1 / 2โอกาสของการหยุดหลังจากที่แต่ละพลิกจำนวนที่คาดหวังของการพลิกเป็นเพียง 1 / 2 ( 1 ) + 1 / 4 ( 2 ) + 1 / 8 ( 3 ) + ⋯ + 2 - n ( n ) + ⋯ = 2ฉ( Y) / g( Y)1 / 21 / 2 ( 1 ) + 1 / 4 ( 2 ) + 1 / 8 ( 3 ) + ⋯ + 2- n(n)+⋯=2
การสุ่มตัวอย่างการปฏิเสธสามารถคุ้มค่า (และมีประสิทธิภาพ) หากจำนวนการปฏิเสธที่คาดไว้มีน้อย เราสามารถทำสิ่งนี้ได้โดยปรับสี่เหลี่ยมผืนผ้าที่ใหญ่ที่สุดที่เป็นไปได้ (แทนการกระจายตัวแบบสม่ำเสมอ) ใต้ PDF ปกติ
การใช้แคลคูลัสเพื่อเพิ่มประสิทธิภาพพื้นที่สี่เหลี่ยมที่คุณจะพบว่าจุดสิ้นสุดของมันควรจะนอนอยู่ที่ที่ความสูงเท่ากับประสบการณ์( - 1 / 2 ) / √±1ทำให้พื้นที่มากขึ้นน้อยกว่า0.48 ด้วยการใช้ความหนาแน่นปกติมาตรฐานนี้เป็นgและปฏิเสธค่าทั้งหมดที่อยู่นอกช่วงเวลา[-1,1]โดยอัตโนมัติและมิฉะนั้นจะใช้ขั้นตอนการปฏิเสธเราจะได้รูปแบบเดียวกันใน[-1,1] ได้อย่างมีประสิทธิภาพ:exp(−1/2)/2π−−√≈0.2419710.48g[−1,1][−1,1]
ในส่วนที่ของเวลาตัวแปรปกติอยู่เหนือ[ - 1 , 1 ]และถูกปฏิเสธทันที ( Φเป็น CDF ปกติมาตรฐาน)2Φ(−1)≈0.317[ - 1 , 1 ]Φ
ในส่วนที่เหลือของเวลาจะต้องปฏิบัติตามขั้นตอนการปฏิเสธไบนารีโดยต้องมีค่าความแปรปรวนอีกสองค่าโดยเฉลี่ย
ขั้นตอนโดยรวมต้องใช้ค่าเฉลี่ยของขั้นตอน1 / ( 2 ประสบการณ์( - 1 / 2 ) / 2 π--√) ≈ 2.07
จำนวนที่คาดหวังของความแปรปรวนปกติที่จำเป็นในการสร้างผลลัพธ์ที่เหมือนกันนั้น
2 e π---√( 1 - 2 Φ ( - 1 ) ) ≈ 2.82137
แม้ว่ามันจะค่อนข้างมีประสิทธิภาพ แต่โปรดทราบว่าการคำนวณ (1) ของ PDF ปกติต้องใช้การคำนวณแบบเอ็กซ์โพเนนเชียลและ (2) ค่าจะต้องถูกคำนวณล่วงหน้าทุกครั้ง มันยังคงมีการคำนวณน้อยกว่าวิธี Box-Mueller ( qv )Φ ( - 1 )
สถิติการสั่งซื้อของเครื่องแบบกระจายมีช่องว่างชี้แจง เนื่องจากผลรวมของกำลังสองของสองบรรทัดฐาน (จากค่าเฉลี่ยศูนย์) เป็นเลขชี้กำลังเราอาจสร้างการรับรู้ของเครื่องแบบอิสระโดยการรวมกำลังสองของคู่ของ Normals ดังกล่าวคำนวณผลรวมสะสมของสิ่งเหล่านี้[ 0 , 1 ]และวางอันสุดท้าย (ซึ่งจะเท่ากับ1เสมอ) นี่เป็นวิธีการที่น่าพอใจเพราะมันต้องการเพียงการแบ่งกำลังสองการหาผลรวมและ (ในตอนท้าย) เพียงส่วนเดียวn[0,1]1
ค่าโดยอัตโนมัติจะอยู่ในลำดับจากน้อยไปมาก หากต้องการการเรียงลำดับเช่นนี้วิธีนี้จะดีกว่าการคำนวณอื่น ๆ ทั้งหมดตราบเท่าที่จะหลีกเลี่ยงค่าใช้จ่ายในการเรียงลำดับO ( n log ( n ) ) หากต้องการลำดับชุดเครื่องแบบอิสระอย่างไรก็ตามการเรียงลำดับค่าnเหล่านี้แบบสุ่มจะเป็นการหลอกลวง เนื่องจาก (เท่าที่เห็นในวิธี Box-Mueller, qv ) อัตราส่วนของแต่ละคู่ของ Normals ไม่ขึ้นอยู่กับผลรวมของกำลังสองของแต่ละคู่เรามีวิธีการที่จะได้รับการเปลี่ยนแปลงแบบสุ่ม: เรียงลำดับผลรวมสะสมโดยอัตราส่วนที่สอดคล้องกัน . (ถ้าnnO(nlog(n))nnมีขนาดใหญ่มากกระบวนการนี้สามารถดำเนินการในกลุ่มเล็ก ๆ ของมีการสูญเสียประสิทธิภาพน้อยเนื่องจากแต่ละกลุ่มต้องการเพียง2 ( k + 1 )เกณฑ์ปกติเพื่อสร้างค่าเครื่องแบบk สำหรับค่าคงที่kค่าใช้จ่ายในการคำนวณแบบซีมโทติคคือO ( n log ( k ) ) = O ( n )ต้องการ2 n ( 1 + 1 / k )ตัวแปรปกติเพื่อสร้างค่าเครื่องแบบn )k2(k+1)kkO(nlog(k))O(n)2n(1+1/k)n
สำหรับการประมาณค่าที่ยอดเยี่ยมตัวแปรปกติใด ๆ ที่มีค่าเบี่ยงเบนมาตรฐานขนาดใหญ่จะมีลักษณะสม่ำเสมอตลอดช่วงของค่าที่น้อยกว่ามาก เมื่อหมุนการกระจายตัวนี้ไปยังช่วง (โดยการเอาเฉพาะส่วนที่เป็นเศษส่วนของค่า) เราจึงได้การแจกแจงที่สม่ำเสมอสำหรับทุกวัตถุประสงค์ สิ่งนี้มีประสิทธิภาพอย่างมากโดยต้องการหนึ่งในการดำเนินการทางคณิตศาสตร์ที่ง่ายที่สุดของทั้งหมด: เพียงแค่ปัดแต่ละตัวแปรปกติลงไปเป็นจำนวนเต็มที่ใกล้ที่สุดและเก็บส่วนเกินไว้ ความเรียบง่ายของวิธีการนี้กลายเป็นสิ่งที่น่าสนใจเมื่อเราตรวจสอบการใช้งานจริง:[0,1]R
rnorm(n, sd=10) %% 1
สร้างn
ค่าที่สม่ำเสมอในช่วงที่ราคาของตัวแปรธรรมดาและแทบไม่มีการคำนวณ[0,1]n
(แม้ว่าค่าเบี่ยงเบนมาตรฐานคือ , PDF ของการประมาณนี้แตกต่างจาก PDF ที่เหมือนกันดังที่แสดงในรูปต่อไปนี้โดยน้อยกว่าหนึ่งส่วนใน10 8 ! ในการตรวจสอบว่าเชื่อถือได้จะต้องมีตัวอย่าง10 ค่า16 - มันเกินความสามารถของการทดสอบแบบสุ่มใด ๆ แล้วด้วยความเบี่ยงเบนมาตรฐานที่ใหญ่กว่าทำให้ความไม่สม่ำเสมอนั้นเล็กมากจนไม่สามารถคำนวณได้ตัวอย่างเช่นด้วย SD 10ที่แสดงในรหัสค่าเบี่ยงเบนสูงสุดจากเครื่องแบบ PDF เพียง10 - 857 )110810161010−857
ในทุกกรณีตัวแปรปกติ "ที่มีพารามิเตอร์ที่รู้จัก" สามารถนำมาปรับใหม่และลดขนาดลงใน Standard Normals ที่สมมติไว้ด้านบนได้อย่างง่ายดาย หลังจากนั้นค่าการกระจายที่เกิดขึ้นอย่างสม่ำเสมอสามารถปรับใหม่อีกครั้งและลดขนาดให้ครอบคลุมช่วงเวลาที่ต้องการ สิ่งเหล่านี้ต้องการการดำเนินการทางคณิตศาสตร์ขั้นพื้นฐานเท่านั้น