開始使用免費開始

抽取 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,)。關鍵字參數 sizen_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
編輯並執行程式碼