始める無料で始める

非標準な推定量

前の演習では、シンプルなブートストラップを実行しました。ここでは、より複雑な推定量に対応できるように手法を少し変えてみます。

あなたは学生の健康状態を調べています。1000人分の身長と体重のデータが与えられており、身長の中央値、および身長と体重の相関と、それぞれに対応する95%信頼区間(CI)に関心があります。ブートストラップを使ってみましょう。

1000人の身長と体重を含む pandas のDataFrame df を確認してください。これを用いて、身長の中央値と、身長と体重の相関のそれぞれに対する95% CIを計算してください。

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

Pythonで学ぶ統計シミュレーション

コースを見る

演習の手順

  • df に対して .sample() メソッドを使い、復元抽出でデータのサンプルを生成して tmp_df に代入します。
  • 生成した各 tmp_df について、.median().corr() を用いて身長の中央値と、身長と体重の相関を計算します。
  • 身長の中央値を height_medians に、相関を hw_corr に追加します。
  • 最後に、np.percentile() を使って上記の各量の95%([2.5, 97.5])信頼区間を計算します。

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

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

# Sample with replacement and calculate quantities of interest
sims, data_size, height_medians, hw_corr = 1000, df.shape[0], [], []
for i in range(sims):
    tmp_df = ____(n=____, replace=____)
    height_medians.append(____)
    hw_corr.append(____)

# Calculate confidence intervals
height_median_ci = np.____
height_weight_corr_ci = np.____
print("Height Median CI = {} \nHeight Weight Correlation CI = {}".format( height_median_ci, height_weight_corr_ci))
コードを編集して実行