การทดสอบ 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 argumentsize=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)