非標準な推定量
前の演習では、シンプルなブートストラップを実行しました。ここでは、より複雑な推定量に対応できるように手法を少し変えてみます。
あなたは学生の健康状態を調べています。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))