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

การคำนวณค่า b-value สำหรับ Parkfield

ECDF มีประสิทธิภาพในการเผยให้เห็น roll-off ได้ชัดเจน ดังที่เห็นในช่วงขนาดต่ำกว่า 1 เนื่องจากมีแผ่นดินไหวที่ขนาดเกิน 3 อยู่เป็นจำนวนมาก จึงสามารถใช้ mt = 3 เป็นเกณฑ์ความสมบูรณ์ของข้อมูล (completeness threshold) ได้ โดยใช้เกณฑ์นี้คำนวณค่า b-value สำหรับพื้นที่ Parkfield ในช่วงปี 1950 ถึง 2016 พร้อมช่วงความเชื่อมั่น 95% แล้วแสดงผลลัพธ์บนหน้าจอ ตัวแปร mags ที่เก็บขนาดแผ่นดินไหวทั้งหมดมีอยู่แล้วใน namespace

จากนั้นซ้อนกราฟ CDF เชิงทฤษฎีของการแจกแจงแบบเอกซ์โปเนนเชียลเพื่อตรวจสอบว่าพื้นที่ Parkfield เป็นไปตามกฎ Gutenberg-Richter หรือไม่

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

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

ดูคอร์ส

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

  • คำนวณค่า b-value และช่วงความเชื่อมั่น 95% โดยใช้ฟังก์ชัน b_value() ที่สร้างขึ้น โดยใช้ bootstrap replicates จำนวน 10,000 ครั้ง
  • ใช้ np.random.exponential() เพื่อสุ่มตัวอย่าง 100,000 ค่าจากการแจกแจงเชิงทฤษฎี โดยค่าเฉลี่ยของการแจกแจงคือ b/np.log(10) และต้องบวก mt เข้าไปในตัวอย่างเพื่อจัดการพารามิเตอร์ตำแหน่ง (location parameter) ให้ถูกต้อง จากนั้นเก็บผลลัพธ์ไว้ใน m_theor
  • พล็อต ECDF ของ m_theor เป็นเส้นกราฟ
  • พล็อต ECDF ของขนาดแผ่นดินไหวทั้งหมดที่สูงกว่า mt เป็นจุด
  • คลิก 'ส่งคำตอบ' เพื่อแสดงกราฟและพิมพ์ค่า b-value พร้อมช่วงความเชื่อมั่นบนหน้าจอ

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

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

# Compute b-value and 95% confidence interval
b, conf_int = ____(____, ____, ____=[____, ____], n_reps=____)

# Generate samples to for theoretical ECDF
m_theor = ____(____, size=____) + ____

# Plot the theoretical CDF
_ = ____(*____)

# Plot the ECDF (slicing mags >= mt)
_ = plt.plot(*____(____[____ >= ____]), marker='.', linestyle='none')

# Pretty up and show the plot
_ = plt.xlabel('magnitude')
_ = plt.ylabel('ECDF')
_ = plt.xlim(2.8, 6.2)
plt.show()

# Report the results
print("""
b-value: {0:.2f}
95% conf int: [{1:.2f}, {2:.2f}]""".format(b, *conf_int))
แก้ไขและรันโค้ด