抽取 K-S 重抽樣值
現在,你需要一個函式,從目標分配 f 抽取 Kolmogorov–Smirnov 重抽樣值。請撰寫簽章為 draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) 的函式來完成此事。這裡,n 是資料點數量,f 是用來從目標 CDF 產生樣本的函式。舉例而言,若要對照指數分配(Exponential distribution)進行檢定,你會將 np.random.exponential 傳入 f。這個函式通常需要引數,且必須以 tuple 形式傳入。因此,若你想從平均數為 x_mean 的指數分配取樣,會使用關鍵字 args=(x_mean,)。關鍵字參數 size 與 n_reps 分別代表從目標分配取樣的樣本數,以及要抽取的重抽樣次數。
本練習屬於課程
統計思維個案研究
練習說明
- 撰寫簽章為
draw_ks_reps(n, f, args=(), size=10000, n_reps=10000)的函式,需完成以下事項。- 從目標分配
f產生size個樣本。記得要把args傳入取樣函式,請使用f(*args, size=size)的寫法。將結果存為x_f。 - 將重抽樣陣列
reps初始化為包含n_reps個元素的空陣列。 - 撰寫一個
for迴圈,重複以下步驟n_reps次。- 從
f抽取n個樣本。同樣在函式呼叫中使用*args。將結果存入變數x_samp。 - 使用你在前一個練習中撰寫、並已方便地存放在
dcst模組裡的dcst.ks_stat()來計算 K-S 統計量。將結果存入reps陣列。
- 從
- 回傳陣列
reps。
- 從目標分配
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
____ ____:
# Generate samples from target distribution
x_f = ____
# Initialize K-S replicates
reps = ____
# Draw replicates
for i in range(n_reps):
# Draw samples for comparison
x_samp = ____
# Compute K-S statistic
____[i] = ____
return reps