計算 b-value
b-value 是衡量某地區地震活動度的常見指標。當你處理地震資料時,很可能會經常需要計算它。對於這類會反覆進行的工作,最好的方式就是寫一個函式!請撰寫一個簽名為 b_value(mags, mt, perc=[2.5, 97.5], n_reps=None) 的函式,傳回一組震級 mags 的 b-value,並在(選擇性地,若 n_reps 不是 None)同時傳回其信賴區間。完備性門檻由 mt 給定。perc 關鍵字引數指定信賴區間下、上界的百分位數,而 n_reps 是用來計算信賴區間的自助法重抽樣次數。
本練習屬於課程
統計思維個案研究
練習說明
- 定義一個簽名為
b_value(mags, mt, perc=[2.5, 97.5], n_reps=None)的函式,需完成下列事項:- 使用布林索引,由
mags擷取大於等於完備性門檻mt的震級。將結果存入變數m。 - 計算 b-value 的最佳估計值。記住,b-value 的最佳估計為 b = (m - mt)·ln(10)。將結果存入變數
b。 - 如果
n_reps不是 None,請執行下列步驟。- 抽取
m的平均數之n_reps個自助法重抽樣複本。將結果存入變數m_bs_reps。 - 將
m的平均數之自助法重抽樣複本轉換為 b-value 的重抽樣複本。將結果存入b_bs_reps。 - 由 b-value 的自助法重抽樣複本計算信賴區間。將結果存入
conf_int。
- 抽取
- 回傳
b與conf_int,若n_reps為None則只回傳b。
- 使用布林索引,由
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
____ ____:
"""Compute the b-value and optionally its confidence interval."""
# Extract magnitudes above completeness threshold: m
m = ____[____ >= ____]
# Compute b-value: b
b = ____
# Draw bootstrap replicates
if n_reps is None:
return b
else:
m_bs_reps = ____
# Compute b-value from replicates: b_bs_reps
b_bs_reps = (____ - ____) * ____
# Compute confidence interval: conf_int
conf_int = ____
return b, conf_int