始める無料で始める

K-S 複製データの生成

次に、目標分布 f からコルモゴロフ・スミルノフ(K-S)複製データを生成する関数が必要です。シグネチャが draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) の関数を作成しましょう。ここで、n はデータ点の数、f は目標 CDF からサンプルを生成するために使用する関数です。たとえば、指数分布に対して検定する場合は、f として np.random.exponential を渡します。この関数は通常、引数を必要とし、タプルとして渡す必要があります。平均値 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 に格納します。
    • n_reps 個の要素を持つ空の配列として、複製データ用の配列 reps を初期化します。
    • 以下の処理を n_reps 回繰り返す for ループを記述します。
      • f から n 個のサンプルを取得します。ここでも関数呼び出しに *args を使用してください。結果を変数 x_samp に格納します。
      • 前の演習で作成した dcst.ks_stat() を使用して K-S 統計量を計算します(この関数は dcst モジュールに格納されています)。結果を 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
コードを編集して実行