平均の差に対する2標本ブートストラップ仮説検定
次は、Frog A と Frog B の平均衝撃力が同じであるという仮説を検定します。ただし分布は同じである必要はありません(これは置換検定では扱えません)。
2標本ブートストラップ検定では、両方の配列を同じ平均になるようにシフトします。これは、平均が実際には等しいという仮説を模擬するためです。次に、シフトした配列からブートストラップ標本を取り、その平均の差を計算します。これが1つのブートストラップ複製となり、これを多数生成します。p値は、観測された平均の差以上の差をもつ複製の割合です。
forces_concat と empirical_diff_means はすでに名前空間に用意されています。
この演習はコースの一部です
Pythonで学ぶ統計思考(パート2)
演習の手順
np.mean()を使って、すべての衝撃力(forces_concat)の平均を計算します。force_aとforce_bの両方について、各配列の平均が衝撃力の連結配列の平均になるようにシフトしたデータセットを作成します。- シフト後の2つの配列それぞれについて、平均のブートストラップ複製を 10,000 個生成します。
- Frog A のシフト後衝撃力の複製から Frog B のそれを引いて、平均の差のブートストラップ複製を計算します。
- 生成したブートストラップ複製から p 値を計算して出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Compute mean of all forces: mean_force
mean_force = ____
# Generate shifted arrays
force_a_shifted = force_a - np.mean(force_a) + mean_force
force_b_shifted = ____
# Compute 10,000 bootstrap replicates from shifted arrays
bs_replicates_a = draw_bs_reps(____, ____, ____)
bs_replicates_b = draw_bs_reps(____, ____, ____)
# Get replicates of difference of means: bs_replicates
bs_replicates = ____
# Compute and print p-value: p
p = ____ / ____
print('p-value =', p)