始める無料で始める

事後分布のシミュレーション

有効性率の事前分布として Beta(5, 2) を使うことに決めました。データのモデル化には二項分布を使います(病気の患者が治ることを「成功」とみなします)。ベータ分布は二項尤度に対する共役事前分布なので、事後分布はそのままシミュレーションできます。

事前分布が \(Beta(a, b)\) のとき、事後分布は \(Beta(x, y)\) となり、

$x = NumberOfSuccesses + a$、

\(y = NumberOfObservations - NumberOfSuccesses + b\) です。

事後分布をシミュレーションできますか?全体で 22 人の患者データがあり、そのうち 19 人が治癒していることを思い出してください。numpyseaborn はそれぞれ npsns としてインポート済みです。

この演習はコースの一部です

Pythonで学ぶBayesianデータ分析

コースを見る

演習の手順

  • 治療した患者数と治癒した患者数を、それぞれ num_patients_treatednum_patients_cured に代入してください。
  • 適切な numpy の関数を用いて事後分布からサンプリングし、結果を posterior_draws に代入してください。
  • 適切な seaborn の関数を使って事後分布をプロットしてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define the number of patients treated and cured
num_patients_treated = ____
num_patients_cured = ____

# Simulate 10000 draws from the posterior distribuition
posterior_draws = ____(____ + ____, ____ - ____ + ____, 10000)

# Plot the posterior distribution
____(____, shade=True)
plt.show()
コードを編集して実行