ในงานวิเคราะห์เกือบทั้งหมดที่ฉันเคยทำฉันใช้:
set.seed(42)
มันเป็นการแสดงความเคารพคู่มือโบกรถของกาแล็กซี่ แต่ฉันสงสัยว่าถ้าฉันสร้างอคติโดยใช้เมล็ดพันธุ์เดียวกันซ้ำแล้วซ้ำอีก
ในงานวิเคราะห์เกือบทั้งหมดที่ฉันเคยทำฉันใช้:
set.seed(42)
มันเป็นการแสดงความเคารพคู่มือโบกรถของกาแล็กซี่ แต่ฉันสงสัยว่าถ้าฉันสร้างอคติโดยใช้เมล็ดพันธุ์เดียวกันซ้ำแล้วซ้ำอีก
คำตอบ:
ไม่มีอคติหาก RNG ดี อย่างไรก็ตามโดยการใช้เมล็ดพันธุ์เดียวกันกับตัวคุณอยู่เสมอสร้างการพึ่งพาซึ่งกันและกันระหว่างการจำลองทั้งหมดที่คุณแสดงในอาชีพของคุณ สิ่งนี้สร้างความเสี่ยงที่ผิดปกติ
ด้วยการใช้เมล็ดพันธุ์เดียวกันในแต่ละครั้งคุณจะได้ลำดับ pseudorandom ที่ดีอยู่เสมอและงานของคุณเป็นไปด้วยดีหรือ - มีความน่าจะเป็นต่ำ แต่ไม่เป็นศูนย์ - คุณมักจะใช้ลำดับที่ไม่ดีและการจำลองของคุณไม่ได้ ในฐานะตัวแทนของการแจกแจงพื้นฐานตามที่คุณคิดว่าอาจเป็น ไม่ว่างานของคุณจะดีหรือว่ามันก็เป็นหมัด
เปรียบเทียบสิ่งนี้กับการใช้เมล็ดเริ่มต้นสุ่มอย่างแท้จริงในแต่ละครั้ง นาน ๆ ครั้งในขณะที่คุณอาจได้รับลำดับของค่าสุ่มที่ไม่ได้เป็นตัวแทนของการกระจายคุณกำลังสร้างแบบจำลอง แต่ส่วนใหญ่คุณจะไม่เป็นไร หากคุณไม่เคยพยายามที่จะทำซ้ำงานของคุณเอง (กับเมล็ดพันธุ์ใหม่) แล้วในอาชีพของคุณหนึ่งหรือสองครั้งคุณอาจได้รับผลลัพธ์ที่ทำให้เข้าใจผิด แต่ส่วนใหญ่เวลาที่คุณจะโอเค
มีวิธีรักษาที่ง่ายและชัดเจน: ตรวจสอบงานของคุณเสมอโดยเริ่มต้นใหม่ด้วยเมล็ดพันธุ์อื่น มันเป็นไปไม่ได้จริงที่เมล็ดสองเม็ดโดยบังเอิญจะให้ผลลัพธ์ที่ทำให้เข้าใจผิดในทางเดียวกัน
ในทางตรงกันข้ามมีบุญพิเศษในการมี "เมล็ดพันธุ์ส่วนบุคคล" ที่รู้จักกันดี:มันแสดงให้เห็นว่าโลกที่คุณกำลังซื่อสัตย์ วิธีที่ฉลาดแกมโกงที่จะโกหกด้วยการจำลองคือการทำซ้ำจนกว่าพวกเขาจะให้ผลลัพธ์ที่กำหนดไว้ล่วงหน้า นี่คือR
ตัวอย่างการทำงานเพื่อ "แสดงให้เห็น" ว่าแม้กระทั่งเหรียญยุติธรรมมีโอกาสสูงที่จะได้เป็นหัวหน้ามากกว่าครึ่งเวลา:
n.flips <- 100
seeds <- 1:10^3
#
# Run some preliminary simulations.
#
results <- sapply(seeds, function(seed) {
set.seed(seed)
mean(runif(n.flips) > 1/2)
})
#
# Now do the "real" simulation.
#
seed <- seeds[which.max(results)]
set.seed(seed)
x <- mean(runif(n.flips) > 1/2)
z <- (x - 1/2) * 2 * sqrt(n)
cat("Mean:", x, "Z:", z, "p-value:", pnorm(z, lower.tail=FALSE), "\n")
เมื่อมองดูเมล็ดที่กว้างขึ้น (ตั้งแต่ถึง ) ฉันสามารถค้นหาเมล็ดพันธุ์ที่ถูกใจ: 218134 เมื่อคุณเริ่มต้นด้วยเมล็ดนี้ผลเหรียญเหรียญที่พลิกได้หัว! นั่นแตกต่างอย่างมากจากค่าที่คาดไว้ที่ ( )10 6 100 75 50 p = 0.000004
ความหมายอาจน่าสนใจและสำคัญ ตัวอย่างเช่นถ้าฉันรู้ล่วงหน้าว่าฉันจะสมัครเข้าร่วมการทดลองแบบ double-blind ซึ่งเป็นแบบสุ่มและในลำดับใด (ซึ่งฉันอาจจะสามารถควบคุมได้ในฐานะอาจารย์มหาวิทยาลัยที่ทดสอบกลุ่มนักศึกษาปริญญาตรีที่ถูกคุมขังหรือหนูทดลอง) ก่อนหน้านี้ฉันสามารถใช้ชุดเครื่องมือจำลองเพื่อค้นหาเมล็ดพันธุ์ที่จัดกลุ่มนักเรียนให้มากขึ้นตามความชอบของฉันที่จะชอบสิ่งที่ฉันหวังว่าจะ "พิสูจน์" ฉันสามารถรวมคำสั่งตามแผนและเมล็ดพันธุ์นั้นในแผนทดลองของฉันก่อนหน้านี้ดำเนินการทดสอบดังนั้นการสร้างกระบวนการที่ไม่มีผู้วิจารณ์คนสำคัญสามารถฟ้องร้องได้ แต่กระนั้นก็ดี (ฉันเชื่อว่ามี pseudoscience ทั้งสาขาที่ใช้เคล็ดลับบางอย่างเพื่อสร้างความน่าเชื่อถือคุณจะเชื่อว่าฉันใช้ ESP เพื่อควบคุมคอมพิวเตอร์จริงหรือไม่ฉันสามารถทำได้ในระยะไกลกับคุณเช่นกัน!)
บางคนที่รู้ว่าเมล็ดเริ่มต้นไม่สามารถเล่นเกมนี้ได้
เมล็ดพันธุ์ส่วนบุคคลของฉันคือ 17เพราะส่วนใหญ่ของการโพสต์ของฉันยืนยัน (ปัจจุบัน 155 จาก 161 โพสต์ที่ตั้งค่าเมล็ดใช้หนึ่งนี้) ในR
มันเป็นเมล็ดยากที่จะทำงานด้วยเพราะ (ตามที่ปรากฎ) ชุดข้อมูลขนาดเล็กส่วนใหญ่ที่ฉันสร้างด้วยมันมีค่าที่แข็งแกร่ง นั่นไม่ใช่ลักษณะที่ไม่ดี ...
R
พฤติกรรมของมันโดยบังเอิญ
ตามที่ระบุไว้ข้างต้น RNG ที่ดีจะไม่สร้างอคติภายใต้การใช้เมล็ดเดียวกัน อย่างไรก็ตามจะมีความสัมพันธ์ระหว่างผลลัพธ์ (เลขสุ่มหลอกเดียวกันจะเริ่มต้นการคำนวณแต่ละครั้ง) ไม่ว่าเรื่องนี้จะเป็นเรื่องของคณิตศาสตร์ก็ตาม
การใช้เมล็ดเดียวกันนั้นตกลงในบางครั้ง: สำหรับการดีบั๊กหรือเมื่อคุณรู้ว่าคุณต้องการผลลัพธ์ที่สัมพันธ์กัน