ミツバチ精子数に対するブートストラップ仮説検定
次の仮説を検定してみましょう。ネオニコチノイド系殺虫剤を処理したオスのミツバチは、未処理のオスと比較して、平均すると精液1ミリリットルあたりの活動精子数が同じである。検定統計量には平均の差を用います。
参考までに、あなたが第2章で作成した draw_bs_reps() 関数の呼び出しシグネチャは draw_bs_reps(data, func, size=1) です(https://campus.datacamp.com/courses/statistical-thinking-in-python-part-2/bootstrap-confidence-intervals?ex=6 を参照)。
この演習はコースの一部です
Pythonで学ぶ統計思考(パート2)
演習の手順
controlの生存精子数の平均からtreatedの生存精子数の平均を引いた値を計算します。- すべての生存精子数の平均を計算します。そのために、まず
controlとtreatedを連結し、連結した配列の平均を取りましょう。 controlとtreatedの両方について、シフト後のデータ集合(平均が同一になるように調整したもの)を生成します。これはすでに用意されています。- 2つのシフト後配列それぞれについて、平均のブートストラップレプリケートを10,000個生成します。あなたの
draw_bs_reps()関数を使ってください。 - 平均の差のブートストラップレプリケートを計算します。
- p値を計算して表示するコードは用意してあります。"Submit Answer" を押して結果を確認しましょう!
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Compute the difference in mean sperm count: diff_means
diff_means = ____
# Compute mean of pooled data: mean_count
mean_count = ____
# Generate shifted data sets
control_shifted = control - np.mean(control) + mean_count
treated_shifted = treated - np.mean(treated) + mean_count
# Generate bootstrap replicates
bs_reps_control = ____(____,
np.mean, size=10000)
bs_reps_treated = ____(____,
np.mean, size=10000)
# Get replicates of difference of means: bs_replicates
bs_replicates = ____
# Compute and print p-value: p
p = np.sum(bs_replicates >= np.mean(control) - np.mean(treated)) \
/ len(bs_replicates)
print('p-value =', p)