模拟后验抽样
您刚决定为疗效率使用 Beta(5, 2) 先验。您也使用二项分布来建模数据(治愈一名病人视为"成功",还记得吗?)。由于 beta 分布是二项似然的共轭先验,您可以直接模拟后验分布!
您知道,如果先验是 $Beta(a, b)$,则后验是 $Beta(x, y)$,其中:
$x = NumberOfSuccesses + a$,
$y = NumberOfObservations - NumberOfSuccesses + b$。
您能模拟后验分布吗?回顾一下,您一共拥有 22 名患者的数据,其中 19 人已被治愈。numpy 和 seaborn 已分别以 np 和 sns 导入。
本练习是课程的一部分
Python 中的贝叶斯数据分析
练习说明
- 将接受治疗的患者数和被治愈的患者数分别赋给
num_patients_treated和num_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()