始める無料で始める

単一の置換を生成する

次のいくつかの演習では、置換検定を使って有意性検定を行います。動画で説明したように、2つのデザイン A と B で集まった寄付額に差があるかどうかを確かめます。両方のバージョンを数日間実施し、A で 500 件、B で 700 件の寄付が得られたとします。これは変数 donations_Adonations_B に保存されています。

まず、平均値の差に対する帰無分布を作る必要があります。これには、データセットの置換を複数回生成し、それぞれで平均の差を計算する方法を用います。

最初のステップとして、1 回分の置換を作成し、置換後のデータセットに対して平均の差を計算してみましょう。

この演習はコースの一部です

Pythonで学ぶ統計シミュレーション

コースを見る

演習の手順

  • np.concatenate() を使って配列 donations_Adonations_B を連結し、data に代入します。
  • np.random.permutation() を使って 1 回分の置換を取得し、perm に代入します。
  • permuted_Apermuted_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))
コードを編集して実行