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,) というキーワード引数を使用します。また、キーワード引数 size と n_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