เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เราพบเกม no-hitter บ่อยแค่ไหน?

จำนวนเกมที่เล่นระหว่างเกม no-hitter แต่ละครั้งในยุคสมัยใหม่ (ค.ศ. 1901-2015) ของ Major League Baseball ถูกเก็บไว้ในอาร์เรย์ nohitter_times

หากสมมติว่าเกม no-hitter เป็นไปตามกระบวนการ Poisson แล้ว ช่วงเวลาระหว่างเกม no-hitter แต่ละครั้งจะมีการแจกแจงแบบเอกซ์โพเนนเชียล ดังที่ได้เห็นกันมาแล้ว การแจกแจงแบบเอกซ์โพเนนเชียลมีพารามิเตอร์เพียงตัวเดียว ซึ่งเราจะเรียกว่า \(\tau\) หรือช่วงเวลาปกติ ค่าพารามิเตอร์ \(\tau\) ที่ทำให้การแจกแจงแบบเอกซ์โพเนนเชียลเข้ากับข้อมูลได้ดีที่สุดคือค่าเฉลี่ยของช่วงเวลาระหว่างเกม no-hitter (โดยนับเวลาเป็นจำนวนเกม)

ให้คำนวณค่าพารามิเตอร์นี้จากข้อมูล จากนั้นใช้ np.random.exponential() เพื่อ "จำลอง" ประวัติศาสตร์ของ Major League Baseball ด้วยการสุ่มช่วงเวลาระหว่างเกม no-hitter จากการแจกแจงแบบเอกซ์โพเนนเชียลที่ใช้ค่า \(\tau\) ที่หาได้ แล้วพล็อตฮิสโทแกรมเป็นค่าประมาณของ PDF

มีการนำเข้า NumPy, pandas, matplotlib.pyplot และ seaborn ให้แล้วในชื่อ np, pd, plt และ sns ตามลำดับ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Statistical Thinking in Python (ตอนที่ 2)

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนด seed ของตัวสร้างตัวเลขสุ่มด้วยค่า 42
  • คำนวณค่าเฉลี่ยของช่วงเวลา (นับเป็นจำนวนเกม) ระหว่างเกม no-hitter
  • สุ่ม 100,000 ตัวอย่างจากการแจกแจงแบบเอกซ์โพเนนเชียล โดยใช้พารามิเตอร์ที่คำนวณได้จากค่าเฉลี่ยของช่วงเวลาระหว่างเกม no-hitter
  • พล็อต PDF เชิงทฤษฎีโดยใช้ plt.hist() โดยระบุ keyword arguments ได้แก่ bins=50, density=True และ histtype='step' และอย่าลืมติดป้ายกำกับแกน
  • แสดงกราฟที่ได้

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Seed random number generator
____

# Compute mean no-hitter time: tau
tau = ____

# Draw out of an exponential distribution with parameter tau: inter_nohitter_time
inter_nohitter_time = ____(____, 100000)

# Plot the PDF and label axes
_ = ____(inter_nohitter_time,
             ____, ____, ____)
_ = plt.xlabel('Games between no-hitters')
_ = plt.ylabel('PDF')

# Show the plot
plt.show()
แก้ไขและรันโค้ด