ベータ事後分布をシミュレーションする
これから数問にわたり、前の動画で定義した simulate_beta_posterior() 関数を使います。この演習では、その関数が内部で何をしているかを、実際に計算を行って確かめます。
コイントス10回分のリスト tosses が与えられており、1 は表、0 は裏を表します。ここでは表を「成功」と定義します。表の事後確率をシミュレーションするために、ベータ事前分布を用います。事前分布が \(Beta(a, b)\) のとき、事後分布は \(Beta(x, y)\) となり、次のように表せます。
\(x = \text{NumberOfHeads} + a\)
\(y = \text{NumberOfTosses} - \text{NumberOfHeads} + b\)
この演習はコースの一部です
Pythonで学ぶBayesianデータ分析
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Set prior parameters and calculate number of successes
beta_prior_a = ____
beta_prior_b = ____
num_successes = np.sum(____)
# Generate 10000 posterior draws
posterior_draws = np.random.beta(
____ + ____,
____ - ____ + ____,
10000)
# Plot density of posterior_draws
sns.kdeplot(posterior_draws, shade=True)
plt.show()