ผลการแข่งขัน Belmont Stakes มีการแจกแจงแบบปกติหรือไม่?
นับตั้งแต่ปี 1926 การแข่งขัน Belmont Stakes เป็นการแข่งม้าพันธุ์แท้อายุ 3 ปี ในระยะทาง 1.5 ไมล์ Secretariat ทำสถิติเร็วที่สุดในประวัติศาสตร์การแข่งขันนี้เมื่อปี 1973 ในขณะที่ปี 1970 เป็นปีที่ช้าที่สุดเนื่องจากสภาพสนามที่เปียกชื้นและลื่นผิดปกติ เมื่อนำข้อมูลผิดปกติทั้งสองค่านี้ออกจากชุดข้อมูลแล้ว ให้คำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของเวลาที่ผู้ชนะทำได้ จากนั้นสุ่มตัวอย่างจากการแจกแจงปกติที่มีค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานดังกล่าวด้วยฟังก์ชัน rng.normal() แล้วพล็อต CDF พร้อมซ้อน ECDF ของเวลาผู้ชนะ Belmont Stakes ทั้งสองกราฟใกล้เคียงกับการแจกแจงปกติหรือไม่?
หมายเหตุ: Justin รวบรวมข้อมูลเกี่ยวกับ Belmont Stakes จากหน้า Wikipedia ของ Belmont Stakes
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Statistical Thinking in Python (ตอนที่ 1)
คำแนะนำการฝึกหัด
- คำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของเวลาผู้ชนะ Belmont Stakes โดยไม่รวมค่าผิดปกติทั้งสองค่า ซึ่งข้อมูลเหล่านี้อยู่ใน NumPy array ชื่อ
belmont_no_outliers - สุ่มตัวอย่าง 10,000 ค่าจากการแจกแจงปกติที่มีค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานดังกล่าว โดยใช้
rng.normal() - คำนวณ CDF ของตัวอย่างทางทฤษฎีและ ECDF ของข้อมูลผู้ชนะ Belmont Stakes โดยกำหนดผลลัพธ์ให้กับ
x_theor, y_theorและx, yตามลำดับ - กด ส่งคำตอบ เพื่อพล็อต CDF ของตัวอย่างพร้อมกับ ECDF ติดป้ายกำกับแกน และแสดงกราฟ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Compute mean and standard deviation: mu, sigma
# Sample out of a normal distribution with this mu and sigma: samples
# Get the CDF of the samples and of the data
# Plot the CDFs and show the plot
_ = plt.plot(x_theor, y_theor)
_ = plt.plot(x, y, marker='.', linestyle='none')
_ = plt.xlabel('Belmont winning time (sec.)')
_ = plt.ylabel('CDF')
plt.show()