ブートストラップ標本の可視化
この演習では、イギリスのシェフィールド気象観測所で 1883 年から 2015 年に測定された年間降水量データからブートストラップ標本を生成します。データは NumPy 配列 rainfall にミリメートル (mm) 単位で格納されています。ブートストラップ標本を ECDF で可視化すると、ブートストラップサンプリングがどのようにデータの確率的な記述を可能にするか、直感的に理解できます。
この演習はコースの一部です
Pythonで学ぶ統計思考(パート2)
演習の手順
forループを書いて、降水量データのブートストラップ標本を50個取得し、その ECDF をプロットします。- NumPy 配列
rainfallからブートストラップ標本を生成するにはnp.random.choice()を使います。再標本化した配列のsizeは必ずlen(rainfall)にしてください。 - このコースの前編で作成した関数
ecdf()を使い、ブートストラップ標本bs_sampleの ECDF のためのxとyの値を生成します。 - ECDF の値をプロットします。多数を重ねるため、
marker='.'とlinestyle='none'に加えて、color='gray'(灰色の点)とalpha=0.1(半透明)を指定します。
- NumPy 配列
- 配列
rainfallにある元の降水量データについてもecdf()を使って ECDF のxとyの値を生成します。 - 元データの ECDF をプロットします。
- 完了したら Submit(提出する)を押してサンプルを可視化しましょう!
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
for _ in range(50):
# Generate bootstrap sample: bs_sample
bs_sample = ____(____, size=____)
# Compute and plot ECDF from bootstrap sample
x, y = ____
_ = plt.plot(____, ____, ____='.', ____='none',
____='gray', ____=0.1)
# Compute and plot ECDF from original data
x, y = ____
_ = plt.plot(____, ____, ____='.')
# Make margins and label axes
plt.margins(0.02)
_ = plt.xlabel('yearly rainfall (mm)')
_ = plt.ylabel('ECDF')
# Show the plot
plt.show()