1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶ統計思考(パート2)

Connected

演習

平均とSEMのブートストラップ複製

この演習では、Sheffield気象観測所における年間平均降水量の確率密度関数のブートストラップ推定を計算します。ここで推定したいのは、Sheffield気象観測所が1883年から2015年までの測定を何度も繰り返せたとしたら得られる年間平均降水量です。これは平均値の「確率的」な推定です。PDFをヒストグラムとして描くと、正規形状になることがわかります。

実は、さほど厳しくない条件のもとでは、平均の値は常に正規分布に従うことが理論的に示せます。(これは一般には成り立たず、平均と他のごく一部の統計量に限られます。)この分布の標準偏差は「平均の標準誤差(standard error of the mean; SEM)」と呼ばれ、データの標準偏差をデータ点数の平方根で割ったものになります。つまり、データ集合に対しては sem = np.std(data) / np.sqrt(len(data)) です。ハッカースタッツを使えば、この結果を導出せずに同じ結論が得られますが、ここではブートストラップ複製からこの結果を確かめます。

データセットは rainfall という配列にあらかじめ読み込まれています。

指示

100 XP
  • draw_bs_reps() 関数と rainfall 配列を使って、年間降水量の「平均」のブートストラップ複製を 10000 個作成します。ヒント:平均を計算するには func に np.mean を渡します。
    • 参考:draw_bs_reps() は data、func、size の3引数を受け取ります。
  • rainfall の平均の標準誤差を計算して表示します。
    • 計算式は np.std(data) / np.sqrt(len(data)) です。
  • ブートストラップ複製 bs_replicates の標準偏差を計算して表示します。
  • normed=True キーワード引数と 50 個のビンを指定して、複製のヒストグラムを作成します。
  • 完了したら提出してプロットを確認しましょう!