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

การทดสอบ K-S สำหรับการแจกแจงแบบ Exponential

ทดสอบสมมติฐานหลักว่าช่วงเวลาระหว่างแผ่นดินไหวในลำดับ Parkfield มีการแจกแจงแบบ Exponential กล่าวคือ แผ่นดินไหวเกิดขึ้นแบบสุ่มโดยไม่มีความสัมพันธ์กับเหตุการณ์ก่อนหน้า หมายเหตุ: การคำนวณนี้ต้องใช้ทรัพยากรสูง (จะมีการสุ่มตัวเลขมากกว่า 108 ครั้ง) จึงอาจใช้เวลาประมาณ 10 วินาที

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

กรณีศึกษาด้านการคิดเชิงสถิติ

ดูคอร์ส

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

  • สุ่ม replicates จำนวน 10,000 ค่าจากการแจกแจงแบบ Exponential โดยใช้ np.random.exponential() ค่าเฉลี่ยช่วงเวลาระหว่างแผ่นดินไหวถูกเก็บไว้ในตัวแปร mean_time_gap ซึ่งคำนวณไว้ในแบบฝึกหัดก่อนหน้า แล้วเก็บผลลัพธ์ไว้ใน x_f
  • ใช้ค่าตัวอย่าง x_f ร่วมกับช่วงเวลาจริงที่เก็บไว้ใน time_gap เพื่อคำนวณสถิติ Kolmogorov-Smirnov ด้วย dcst.ks_stat()
  • ใช้ฟังก์ชันที่เขียนไว้ในแบบฝึกหัดที่แล้ว ซึ่งขณะนี้เก็บไว้เป็น dcst.draw_ks_reps() เพื่อสุ่ม K-S replicates จำนวน 10,000 ค่าจากการแจกแจงแบบ Exponential โดยใช้ keyword argument size=10000 สำหรับการสุ่มจากการแจกแจงเป้าหมาย แล้วเก็บ replicates ไว้ใน reps
  • คำนวณและแสดงค่า p-value โดยจำไว้ว่า "สุดโต่งอย่างน้อยเท่ากับที่สังเกตได้" ในกรณีนี้หมายถึง test statistic ภายใต้สมมติฐานหลักที่มีค่ามากกว่าหรือเท่ากับค่าที่สังเกตได้จริง

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

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

# Draw target distribution: x_f
x_f = ____

# Compute K-S stat: d
d = ____

# Draw K-S replicates: reps
reps = ____(len(____), ____, 
                         args=(mean_time_gap,), size=____, n_reps=____)

# Compute and print p-value
p_val = ____(____ >= ____) / 10000
print('p =', p_val)
แก้ไขและรันโค้ด