我正在构建一个简单的近似贝叶斯计算应用程序,但遇到了问题。 我不知道如何正确实现 后验概率。
我的先验:非信息量(均匀分布)
生成模型:使用numpy二项分布实现随机是/否猜测
以下是代码:
import numpy as np
import pandas as pd
def pprob():
pass
def generative_model(n_events, p):
return np.random.binomial(n_events, p)
def ABC(n_occured, n_events, n_draws=100000):
prior = pd.Series(np.random.uniform(0, 1, size=n_draws))
sim_data = [generative_model(n_events, p) for p in prior]
posterior = prior[list(map(lambda x: x == n_occured, sim_data))]
posterior_probability = pprob()
ABC(10, 16)
提前致谢!