単一の置換を生成する
次のいくつかの演習では、置換検定を使って有意性検定を行います。動画で説明したように、2つのデザイン A と B で集まった寄付額に差があるかどうかを確かめます。両方のバージョンを数日間実施し、A で 500 件、B で 700 件の寄付が得られたとします。これは変数 donations_A と donations_B に保存されています。
まず、平均値の差に対する帰無分布を作る必要があります。これには、データセットの置換を複数回生成し、それぞれで平均の差を計算する方法を用います。
最初のステップとして、1 回分の置換を作成し、置換後のデータセットに対して平均の差を計算してみましょう。
この演習はコースの一部です
Pythonで学ぶ統計シミュレーション
演習の手順
np.concatenate()を使って配列donations_Aとdonations_Bを連結し、dataに代入します。np.random.permutation()を使って 1 回分の置換を取得し、permに代入します。permuted_Aとpermuted_Bの平均値の差を計算し、diff_in_meansとして代入します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Concatenate the two arrays donations_A and donations_B into data
len_A, len_B = len(donations_A), len(donations_B)
data = ____([donations_A, donations_B])
# Get a single permutation of the concatenated length
perm = ____(len(donations_A) + len(donations_B))
# Calculate the permutated datasets and difference in means
permuted_A = data[perm[:len(donations_A)]]
permuted_B = data[perm[len(donations_A):]]
diff_in_means = ____
print("Difference in the permuted mean values = {}.".format(diff_in_means))