始める無料で始める

ベータ事後分布をシミュレーションする

これから数問にわたり、前の動画で定義した 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()
コードを編集して実行