การอ้างอิงและแนวปฏิบัติที่ดีที่สุดสำหรับการตั้งค่าเมล็ดพันธุ์ในการสร้างหมายเลขหลอกเทียม


11

ในเอกสารนี้เกี่ยวข้องกับคำสั่ง "set seed" คน Stata พูดถึงปัญหาที่เกี่ยวข้องกับการตั้งค่าของเมล็ดเมื่อสร้างตัวเลขสุ่มหลอก

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

"do" ที่น่าสนใจเพียงหนึ่งในสี่คือการตั้งค่าเพียงหนึ่งเมล็ดในช่วงชีวิตของคุณแล้วบันทึก "สถานะ" ของกระบวนการที่สร้างขึ้นในตอนท้ายของการทดสอบแต่ละครั้งเพื่อให้การทดสอบครั้งต่อไปจะดำเนินต่อไปที่จุด ที่กระบวนการหยุดทำงาน

เห็นได้ชัดว่าคำแนะนำข้างต้นขึ้นอยู่กับจำนวนที่คาดหวังของการสุ่มหลอกจำนวนหนึ่งที่จะสร้างในเวลาชีวิตการวิจัยของเขา บางทีTwers Mersenneอาจครอบคลุมความต้องการตลอดชีวิตของนักวิจัยหลายคน ...

ตอนนี้ฉันไม่มีประสบการณ์อย่างมากเกี่ยวกับ PRNG ในทางทฤษฎีหรือในทางปฏิบัติดังนั้นฉันจึงไม่สามารถโต้แย้งเกี่ยวกับคำแนะนำเหล่านี้ได้ - พวกเขาควรได้รับการพิสูจน์ว่าใช้ได้จริงหรือไม่ถูกต้องบนพื้นฐานทางทฤษฎีและสถิติทางคณิตศาสตร์

ดังนั้นคำถามของฉันคือ

1) คุณสามารถช่วยอธิบายหรือยกเลิกคำแนะนำที่ให้ไว้ข้างต้นหรือชี้ไปที่การอ้างอิงที่เกี่ยวข้องกับปัญหาดังกล่าวได้หรือไม่?

2) คุณสามารถให้การอ้างอิงที่เสนอ "แนวปฏิบัติที่ดีที่สุด" ในการตั้งค่าเมล็ดพันธุ์ได้หรือไม่?

3) คุณทำงานเกี่ยวกับเรื่องนี้อย่างไรและทำไม?

เป็นตัวอย่างสำหรับคำถาม 3) สมมติว่าสำหรับการศึกษา Monte Carlo, คุณต้องการสร้างตัวอย่างแต่ละขนาดและที่คุณมีระยะเวลาเพียงพอที่มีขนาดใหญ่กว่าล้านคุณจะสร้างตัวเลขสุ่มหลอกทั้งหมดด้วยหนึ่งเมล็ดหรือคุณมีนิสัยเปลี่ยนเมล็ดพูดตัวอย่างต่อ (แต่เป็นเพียงภาพประกอบเท่านั้น - ฉันเชื่อว่าคำตอบทั่วไปมีค่ามากกว่าที่นี่) ม.nPRNGม.nม.n

เธรดที่เกี่ยวข้อง (แม้ว่าจะเน้นมากขึ้น) คือการ
ตั้งค่า seed ก่อนแต่ละบล็อคโค้ดหรือหนึ่งครั้งต่อโปรเจ็กต์?

ฉันมีความรู้สึกว่านี่น่าจะเป็นวิกิของชุมชนผู้ดัดแปลงโปรดตัดสินใจด้วยสิ่งนั้น


4
หน้าคู่มือ Stata นั้นสร้างสมมติฐานที่สำคัญโดยนัยว่าทำไมจึงมีการใช้เมล็ด เหตุผลหลักที่ฉันใช้เมล็ดพันธุ์ (ในโพสต์ของฉันที่นี่ในประวัติย่อ) คือการสร้างตัวอย่างที่ทำซ้ำได้ เพื่อที่จะแสดงให้เห็นว่าฉันยังไม่ได้เล่นกับเมล็ดจนกว่าตัวอย่างจะเป็นที่ชื่นชอบของฉัน (!) ฉัน (เกือบ) มักจะใช้เมล็ดเดียวกัน สิ่งนี้ขัดแย้งกับคำแนะนำ Stata อย่างเห็นได้ชัดเพราะฉันมีวัตถุประสงค์ที่แตกต่างจากที่พวกเขาจะต้องมีในใจ (ซึ่งไม่ได้ระบุไว้) คุณธรรมที่นี่คือการปฏิบัติที่ดีที่สุดขึ้นอยู่กับวัตถุประสงค์
whuber

@ ความรู้สึกของฉันคือคำแนะนำที่ให้ไว้ในเอกสารที่ฉันพูดถึงมีจุดมุ่งหมายที่จะรักษาทั้ง "แบบแผน" และการทำซ้ำของซีรีส์ที่ใช้ (ผ่านการบันทึก "สถานะ" ของกระบวนการตามที่พวกเขาพูด) เป้าหมายเหล่านี้ดูเหมือนจะคุ้มค่าในการจัดตั้งขึ้นไม่ว่าจุดประสงค์ของการวิจัยจะเป็นอย่างไร
Alecos Papadopoulos

1
แน่นอนว่าพวกเขามีความคุ้มค่า - แต่นั่นไม่ได้พิสูจน์ให้เห็นว่าเป็น "dos" และ "don'ts" ที่ชัดเจนตามที่แสดงในหน้าคู่มือนั้น ปัญหาเกี่ยวกับdicta ที่ไม่มีหมวดหมู่เช่นนั้นคือคนอื่น ๆ - เช่นนักกฎหมาย - จะถูกนำไปคิดว่าการปฏิบัติใด ๆ ในทางตรงกันข้ามนั้นผิดโดยเนื้อแท้โดยไม่คำนึงถึงวัตถุประสงค์หรือสถานการณ์ การออกจากห้องเพื่อการตัดสินในการฝึกสถิติเป็นเรื่องสำคัญ! โดยเฉพาะอย่างยิ่งโปรดอย่าทำให้เราสับสนคำแนะนำสำหรับการใช้ซอฟต์แวร์ด้วย "แนวทางปฏิบัติที่ดีที่สุด"
whuber

@ ความจริงที่ว่าฉันใช้เป็น "ตัวกระตุ้น" เอกสารที่เชื่อมโยงกับซอฟต์แวร์เฉพาะนั้นไม่ได้ทำให้คำถามของฉันเกี่ยวกับ "คำแนะนำสำหรับการใช้ซอฟต์แวร์" คำถามที่โพสต์ชัดเจนเกี่ยวกับนโยบายที่ใช้โดยนักวิจัยในการทำวิจัยทางสถิติดังนั้นฉันจึงไม่เห็นความสับสน
Alecos Papadopoulos

3
สมมติว่า PRNG ของคุณดีทำไมการตั้งค่าเมล็ดที่มีรูปแบบสร้างความแตกต่างนั่นคือทั้งหมดของ PRNG ใช่ไหม
purple51

คำตอบ:


3

สำหรับสิ่งที่คุ้มค่านี่คือประสบการณ์และไม่ใช่การวิเคราะห์ทางคณิตศาสตร์:

ฉันคิดว่าถ้าคุณไม่ได้เข้ารหัสวิทยาการในที่ซึ่งรูปแบบที่ละเอียดอ่อนอาจจะแย่มากซึ่งเมล็ดที่คุณตั้งไว้นั้นไม่ได้สร้างความแตกต่างตราบใดที่คุณใช้ PRNG ที่ยอมรับเช่น Mersenne Twister และไม่แก่เหมือนเครื่องกำเนิดเชิงเส้นเชิงเส้น เท่าที่ฉันรู้ไม่มีวิธีใดที่คุณสามารถบอกได้ว่าตัวเลขสุ่มใดจะออกมาจากเมล็ดที่กำหนดโดยไม่เรียกใช้ PRNG (สมมติว่ามันเป็นอันที่เหมาะสม) มิฉะนั้นคุณจะใช้อัลกอริธึมใหม่และใช้มันเป็นของคุณ เครื่องกำเนิดตัวเลขสุ่ม

มุมมองอื่น: คุณคิดว่ารูปแบบที่ละเอียดอ่อนใด ๆ ในการจำลอง Monte-Carlo ของคุณมีแนวโน้มที่จะมีขนาดใหญ่กว่าข้อผิดพลาดการวัดการรบกวนและข้อผิดพลาดที่แนะนำโดยข้อสมมติฐานการสร้างแบบจำลองอื่น ๆ หรือไม่

ฉันจะใช้เพียงหนึ่งเมล็ดสุ่มที่จุดเริ่มต้นสำหรับการทำซ้ำและไม่ได้ตั้งค่าก่อนการโทรแต่ละครั้งยกเว้นว่าฉันกำลังทำการดีบักที่ฉันต้องแน่ใจว่าอัลกอริทึมที่แตกต่างกันสองผลิตผลลัพธ์เดียวกันสำหรับข้อมูลอินพุตเดียวกันแน่นอน

คำเตือน: หากคุณจำลองเครื่องปฏิกรณ์นิวเคลียร์หรือระบบควบคุมขีปนาวุธหรือพยากรณ์อากาศดีที่สุดที่จะปรึกษาผู้เชี่ยวชาญด้านโดเมนฉันจะไม่รับผิดชอบในกรณีนี้

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