我正在阅读“使用 Python 进行贝叶斯分析”一书,作者提供了一些 Python 代码,旨在展示为经典抛硬币示例获取近似后验分布的网格搜索方法。在这个例子中,我们设置了获得正面的概率的先验,然后给定一些数据,我们的可能性是二项式分布。
因此,根据我对使用网格搜索的理解,我们将打破间隔成块,在我们的例子中是 100。我们有一个先验概率对于离散网格中的每个点,我们将其乘以我们将它们相乘以获得每个位置的非标准化估计值。
代码如下
def posterior_grid_approx(grid_points=100, heads=6, tosses=9):
grid = np.linspace(0, 1, grid_points)
prior=np.repeat(5,grid_points)
likelihood=stats.binom.pmf(heads, tosses, grid)
unstd_posterior = likelihood * prior
posterior = unstd_posterior / unstd_posterior.sum()
return grid, posterior
我不明白为什么先验设置为's 这不是一个概率值吗?据我了解,他们已将网格分成 100 个不同的点,为每个位置获得二项式 pmf,然后将数字乘以 5。这是一个有效的先验吗?
如果有人能清楚地解释这背后的原因,我将非常感激,因为我喜欢像理解概念一样清楚地理解代码。谢谢!