始める無料で始める

子と親の相関

子と親のくちばしの深さの相関を定量化するため、親と子の間のピアソンの相関係数などの統計量を計算したいと考えています。これに対する信頼区間を得るには、ペア・ブートストラップを行う必要があります。

あなたはすでに、線形回帰から導かれるパラメータの推定に対してペア・ブートストラップを行う関数を作成しました。この演習の課題は、呼び出しシグネチャが draw_bs_pairs(x, y, func, size=1) の新しい関数を作成し、ペア・ブートストラップを実行して定義されたペア標本に対して単一の統計量を計算することです。対象となる統計量は func(bs_x, bs_y) を呼び出すことで計算します。次の演習では、func として pearson_r を使います。

この演習はコースの一部です

Pythonで学ぶ統計思考(パート2)

コースを見る

演習の手順

  • サンプリング元となるインデックス配列を用意します。(ペア・ブートストラップでは、インデックスをランダムに選び、そのインデックスでペアを取得することを思い出してください。)
  • ブートストラップ複製を格納する配列を初期化します。これは長さが size の一次元配列にします。
  • 標本を描くための for ループを書きます。
  • 先ほど用意したインデックス配列からランダムにインデックスを選びます。
  • そのインデックスを使って入力配列から x 値と y 値を取り出し、ブートストラップ標本を生成します。
  • func を使って、xy のブートストラップ標本から目的の統計量を計算し、ブートストラップ複製の配列に保存します。
  • ブートストラップ複製の配列を返します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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
コードを編集して実行