สิ่งนี้จะทำให้มีอคติในสิ่งที่ควรเป็นตัวเลขสุ่มหรือไม่


11

สมมติว่าไฟล์ข้อมูลที่มี 80 ล้านไฟล์และเลขศูนย์ถูกสร้างแบบสุ่ม

จากไฟล์นี้เราต้องการสร้างรายการจำนวนเต็มทศนิยมแบบสุ่ม

นี่คือแผนที่จะทำการแปลงนี้

  1. แบ่งตัวเลข 80 ล้านหลักเป็นกลุ่ม 4 หลัก
  2. แปลงเลขฐานสอง 4 หลักเป็นทศนิยม
  3. ยกเลิกค่าทศนิยมทั้งหมดที่มากกว่า 9

สิ่งนี้ควรส่งผลให้เกิดสตริงของจำนวนเต็มแบบสุ่มจาก 0-9

นี่คือความกังวล เลขฐานสอง 24 หลักที่ประกอบด้วยการจัดกลุ่ม 6 ตัวของเลขฐานสอง 4 หลักที่สอดคล้องกับค่า 10 ถึง 15 ประกอบด้วย 17 อันและ 7 ศูนย์เท่านั้น ความไม่สมดุลนี้จะส่งผลกระทบต่อการแจกแจงของเลขจำนวนเต็มคู่กับคี่หรือทำให้การสุ่มของสตริงสุดท้ายของเลขทศนิยมในทางใดทางหนึ่งหรือไม่?

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


9
มีวิธีการที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่นคุณสามารถแบ่งสตริงบิตเป็นกลุ่ม 10 แปลงเป็นฐานสามหลักที่ 10 และทิ้งค่าใด ๆ ด้วยค่า 1,000 หรือมากกว่า สิ่งนี้จะใช้ 97.6% ของบิตมากกว่าแค่ 62.5% คุณไม่สามารถทำได้ดีไปกว่านั้น (คุณสามารถใช้กลุ่ม 681 และแปลงเป็นสตริง 205 หลัก -10 ซึ่งใช้ประโยชน์ได้เกือบ 99.7% ของบิต)
whuber

คำตอบ:


18

ลองนับและดู โดยการสร้างไฟล์สตริง 4 บิตทั้งหมดมีโอกาสเท่ากัน มี 16 สตริงดังกล่าว ที่นี่พวกเขาคือ:

 0. 0000
 1. 0001
 2. 0010
 3. 0011
 4. 0100
 5. 0101
 6. 0110
 7. 0111
 8. 1000
 9. 1001
10. 1010
11. 1011
12. 1100
13. 1101
14. 1110
15. 1111

ขั้นตอนของคุณพ่นสตริงที่ 10 ถึง 15 ดังนั้นในกรณีที่คุณใช้จริงคุณจะเลือก 0 ถึง 9 ซึ่งแต่ละอันมีแนวโน้มเท่า ๆ กันตามที่ต้องการ และเรารู้ว่าเลขทศนิยมที่สร้างขึ้นนั้นเป็นอิสระจากกันเพราะแต่ละอันใช้สตริงแยก 4 บิตและบิตทั้งหมดนั้นเป็นอิสระ ขั้นตอนของคุณเป็นการสุ่มตัวอย่างการปฏิเสธแบบง่าย ๆ


5
ฉันเห็นตรรกะนั้นชัดเจน แต่ฉันเป็นห่วงว่าฉันละทิ้งไบนารี 1 มากกว่า 0 ทำไมความไม่สมดุลนั้นไม่มีผลกระทบใด ๆ
Joel W.

5
@ JoelW ฉันเดาว่าฉันไม่เห็นข้อโต้แย้งของคุณ การแจกแจงสุดท้ายเกี่ยวข้องกับเลขทศนิยมไม่ใช่บิตดังนั้นการแจกแจงบิตจึงไม่เกี่ยวข้อง
ประสาทวิทยา

7
สิ่งนี้ถูกต้อง แต่เพียงบางส่วนตอบคำถาม เพื่อที่อยู่ "ประนีประนอมสุ่ม ... ในทางใดทางหนึ่ง" ส่วนหนึ่งของคำถามที่หนึ่งนอกจากนี้ยังมีการสร้างที่ส่งผลให้ตัวเลขทศนิยมจะไปประมาณยอดเยี่ยมอิสระ เพื่อประโยชน์ของความครบถ้วนสมบูรณ์มันคุ้มค่าที่จะเสียสละหนึ่งประโยคเพื่ออธิบายผลลัพธ์ (ชัดเจน)
whuber

7
โจเอลฉันเห็นว่าคุณมาจากไหน อาจมีการเข้าใจผิดที่นี่: คุณไม่สามารถย้อนกลับกระบวนการ หากคุณต้องการสร้างกระแสข้อมูลบิตจากกระแสตัวเลขทศนิยมคุณจะต้องทำอะไรบางอย่างเช่นลบทั้ง 8 และ 9 และแปลงตัวเลขที่เหลือเป็นไบนารีอเนกประสงค์ ที่จะคืนความสมดุล ในความเป็นจริงเป็นเรื่องง่ายที่จะเห็นว่า "การเดินทางไปกลับ" จำนวนนี้เพื่อแยกสตรีมดั้งเดิมของคุณออกเป็น nybbles สี่บิตและทิ้งบิตที่สำคัญที่สุดของพวกเขาออกไป
whuber

1
@whuber ยุติธรรมเพียงพอ; ที่เพิ่ม
ประสาทวิทยา

4

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

รหัส R สำหรับกราฟด้านบนคือ

generza=matrix(sample(0:1,4*1e6,rep=TRUE),ncol=4)
uniz=generza[,1]+2*generza[,2]+4*generza[,3]+8*generza[,4]
barplot(hist(uniz[uniz<10],breaks=seq(-0.5,9.5,le=11))$counts,col="steelblue")
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.