แผ่นดินไหวครั้งใหญ่ครั้งต่อไปที่ Parkfield จะเกิดขึ้นเมื่อไร?
แผ่นดินไหวครั้งใหญ่ครั้งล่าสุดในบริเวณ Parkfield เกิดขึ้นในช่วงค่ำของวันที่ 27 กันยายน 2004 ตามเวลาท้องถิ่น ภารกิจของคุณคือประมาณการว่าแผ่นดินไหวครั้งต่อไปที่ Parkfield จะเกิดขึ้นเมื่อไร โดยใช้ทั้งโมเดล Exponential และโมเดล Gaussian ในทั้งสองกรณี ค่าประมาณที่ดีที่สุดคือค่าเฉลี่ยของช่วงเวลา ซึ่งคำนวณไว้ในแบบฝึกหัดที่แล้วได้ 24.62 ปี หมายความว่าแผ่นดินไหวครั้งต่อไปจะเกิดขึ้นในปี 2029 จงคำนวณช่วงความเชื่อมั่น 95% สำหรับเวลาที่คาดว่าแผ่นดินไหวครั้งต่อไปจะเกิดขึ้น โดยสมมติว่าเป็นการแจกแจงแบบ Exponential ที่กำหนดพารามิเตอร์ด้วย mean_time_gap ที่คำนวณไว้ แล้วทำเช่นเดียวกันโดยสมมติว่าเป็นการแจกแจงแบบ Normal ที่กำหนดพารามิเตอร์ด้วย mean_time_gap และ std_time_gap
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
กรณีศึกษาด้านการคิดเชิงสถิติ
คำแนะนำการฝึกหัด
- สุ่มตัวอย่าง 100,000 ค่าจากการแจกแจงแบบ Exponential โดยมีค่าเฉลี่ยเท่ากับ
mean_time_gapแล้วเก็บผลลัพธ์ไว้ในตัวแปรexp_samples - สุ่มตัวอย่าง 100,000 ค่าจากการแจกแจงแบบ Normal โดยมีค่าเฉลี่ยเท่ากับ
mean_time_gapและส่วนเบี่ยงเบนมาตรฐานเท่ากับstd_time_gapแล้วเก็บผลลัพธ์ไว้ในตัวแปรnorm_samples - เนื่องจากยังไม่มีแผ่นดินไหวที่ Parkfield จนถึงปัจจุบัน ให้ตัดเฉพาะตัวอย่างที่มีค่ามากกว่า
today - last_quakeโดยที่todayคือปีปัจจุบันในรูปแบบทศนิยม และlast_quake = 2004.74คือปีของแผ่นดินไหวครั้งล่าสุดที่ Parkfield ในรูปแบบเดียวกัน จากนั้นนำอาร์เรย์ที่ตัดแล้วไปบันทึกทับตัวแปรexp_samplesและnorm_samplesตามลำดับ - ใช้
np.percentile()คำนวณช่วงความเชื่อมั่น 95% สำหรับเวลาที่แผ่นดินไหวครั้งต่อไปที่ Parkfield จะเกิดขึ้น และในการเรียกฟังก์ชันเดียวกัน สามารถคำนวณค่ามัธยฐานได้พร้อมกันโดยรวม percentile ที่ 50 เข้าไปด้วย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Draw samples from the Exponential distribution: exp_samples
exp_samples = ____
# Draw samples from the Normal distribution: norm_samples
norm_samples = ____
# No earthquake as of today, so only keep samples that are long enough
exp_samples = ____[____ > ____ - ____]
norm_samples = ____[____ > ____ - ____]
# Compute the confidence intervals with medians
conf_int_exp = ____(____, [____, ____, ____]) + last_quake
conf_int_norm = ____(____, [____, ____, ____]) + last_quake
# Print the results
print('Exponential:', conf_int_exp)
print(' Normal:', conf_int_norm)