1標本ブートストラップによる仮説検定
別の若いカエル、カエルCも調査され、カエルBとカエルCの衝撃力が似ているか確かめたいとします。残念ながら、カエルCの個々の衝撃力データは手元にありませんが、その平均が 0.55 N であることは分かっています。元データがないため、置換検定はできず、「カエルBとカエルCの衝撃力は同じ分布から来ている」という仮説は評価できません。そこで、より制約の少ない仮説、すなわち「カエルBの打撃力の平均はカエルCの平均に等しい」を検定します。
ブートストラップ仮説検定を設定するにあたり、検定統計量として平均を用います。目標は、「もし『カエルBの真の平均衝撃力がカエルCの平均に等しい』という仮説が正しいなら、観測されたカエルBの平均衝撃力以下の値が得られる確率」を求めることです。まず、カエルBの全データを、平均が 0.55 N になるように平行移動します。これは、カエルBの各測定値に対し、カエルCの平均を足し、カエルBの平均を引く操作に相当します。これにより、分散などカエルBの分布の他の特性は変わりません。
この演習はコースの一部です
Pythonで学ぶ統計思考(パート2)
演習の手順
- カエルBの衝撃力を、平均が 0.55 N になるように平行移動してください。
- 作成済みの
draw_bs_reps()関数を使い、平行移動後のデータの平均について 10,000 回のブートストラップ複製を生成してください。 - 観測されたカエルBの平均衝撃力より小さいブートストラップ複製の割合から p 値を計算してください。関心のある変数は
force_bです。 - p 値を出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Make an array of translated impact forces: translated_force_b
translated_force_b = ____
# Take bootstrap replicates of Frog B's translated impact forces: bs_replicates
bs_replicates = draw_bs_reps(____, ____, 10000)
# Compute fraction of replicates that are less than the observed Frog B force: p
p = np.sum(____ <= np.mean(____)) / 10000
# Print the p-value
print('p = ', ____)