子と親の相関
子と親のくちばしの深さの相関を定量化するため、親と子の間のピアソンの相関係数などの統計量を計算したいと考えています。これに対する信頼区間を得るには、ペア・ブートストラップを行う必要があります。
あなたはすでに、線形回帰から導かれるパラメータの推定に対してペア・ブートストラップを行う関数を作成しました。この演習の課題は、呼び出しシグネチャが draw_bs_pairs(x, y, func, size=1) の新しい関数を作成し、ペア・ブートストラップを実行して定義されたペア標本に対して単一の統計量を計算することです。対象となる統計量は func(bs_x, bs_y) を呼び出すことで計算します。次の演習では、func として pearson_r を使います。
この演習はコースの一部です
Pythonで学ぶ統計思考(パート2)
演習の手順
- サンプリング元となるインデックス配列を用意します。(ペア・ブートストラップでは、インデックスをランダムに選び、そのインデックスでペアを取得することを思い出してください。)
- ブートストラップ複製を格納する配列を初期化します。これは長さが
sizeの一次元配列にします。 - 標本を描くための
forループを書きます。 - 先ほど用意したインデックス配列からランダムにインデックスを選びます。
- そのインデックスを使って入力配列から
x値とy値を取り出し、ブートストラップ標本を生成します。 funcを使って、xとyのブートストラップ標本から目的の統計量を計算し、ブートストラップ複製の配列に保存します。- ブートストラップ複製の配列を返します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
def draw_bs_pairs(x, y, func, size=1):
"""Perform pairs bootstrap for a single statistic."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_replicates
bs_replicates = ____
# Generate replicates
for i in range(size):
bs_inds = ____
bs_x, bs_y = ____
bs_replicates[i] = ____
return bs_replicates