始める無料で始める

ミツバチ精子数に対するブートストラップ仮説検定

次の仮説を検定してみましょう。ネオニコチノイド系殺虫剤を処理したオスのミツバチは、未処理のオスと比較して、平均すると精液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 の生存精子数の平均を引いた値を計算します。
  • すべての生存精子数の平均を計算します。そのために、まず controltreated を連結し、連結した配列の平均を取りましょう。
  • controltreated の両方について、シフト後のデータ集合(平均が同一になるように調整したもの)を生成します。これはすでに用意されています。
  • 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)
コードを編集して実行