我是贝叶斯统计数据的新手,我正在尝试估算Python中泊松(似然)和伽马分布(先验)的后验。我试图估计的参数是泊松分布中的lambda变量。我认为后验将采用伽玛分布的形式(共轭先验?)但我不想利用它。我唯一给出的是数据(名为“my_data”)。这是我的代码:
ControlCollection
当我尝试绘制后部时,我得到一个空的情节。我绘制了先验,它看起来很好,所以我认为问题是可能性。我拿了日志,因为数据相当大,我不想让事情变得不稳定。任何人都可以在我的代码中指出问题吗?任何帮助将不胜感激。
答案 0 :(得分:3)
在贝叶斯统计中,一个目标是计算给定数据的参数(lambda)的后验分布,并在λ的可能值范围之前计算先验。在您的代码中,您计算数组x的先验值,但是您为lambda采用单个值来计算可能性。后验和可能性也应该超过x,例如:
posterior = [likelihood(my_data, lambda_i) for lambda_i in x] * prior
(假设您没有记录先前和可能的日志)
您可能需要查看PyMC3库。
答案 1 :(得分:0)
我建议你看一下conjugate_prior
模块。
你可以输入:
from conjugate_prior import GammaPoisson
model = GammaPoisson(prior_a, prior_b)
model = model.update(...)
credible_interval = model.posterior(lower_bound, upper_bound)