估计Python中的后验?

时间:2016-03-02 19:39:46

标签: python statistics probability bayesian poisson

我是贝叶斯统计数据的新手,我正在尝试估算Python中泊松(似然)和伽马分布(先验)的后验。我试图估计的参数是泊松分布中的lambda变量。我认为后验将采用伽玛分布的形式(共轭先验?)但我不想利用它。我唯一给出的是数据(名为“my_data”)。这是我的代码:

ControlCollection

当我尝试绘制后部时,我得到一个空的情节。我绘制了先验,它看起来很好,所以我认为问题是可能性。我拿了日志,因为数据相当大,我不想让事情变得不稳定。任何人都可以在我的代码中指出问题吗?任何帮助将不胜感激。

2 个答案:

答案 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)