问题描述
免责声明:我不知道我在做什么,无论是在 pymc3 还是贝叶斯统计中,但我正在尝试通过直接潜入来学习......
我想我想做的是:
所以每次抽奖我都会有来自 B 的可变数量的值。
我对代码的天真尝试是:
with pm.Model() as model:
events = pm.Poisson("events",mu=5)
count = events.random()
losses = [
pm.Lognormal(f"loss[{i}]",1.2,0.2)
for i in range(count)
]
year_loss = pm.Deterministic("year_loss",pm.math.sum(losses))
trace = pm.sample(draws=500,chains=1)
total_loss = trace.get_values("year_loss").sum()
print(f"total_loss: {total_loss}")
mean_loss = total_loss / 500
print(f"mean_loss: {mean_loss}")
这种“工作方式”,因为我可以得到一些输出,如:
Sequential sampling (1 chains in 1 job)
CompoundStep
>Metropolis: [events]
>NUTS: [loss[4],loss[3],loss[2],loss[1],loss[0]]
Sampling 1 chain for 1_000 tune and 500 draw iterations (1_000 + 500 draws total) took 2 seconds.02<00:00 Sampling chain 0,0 divergences]
Only one chain was sampled,this makes it impossible to run some convergence checks
total_loss: 8431.667563769252
mean_loss: 16.8633351275385
但真正发生的是 count
在跟踪中的所有绘图中只有一个值。
相反,我希望它在每次抽奖时都有一个独立的值。
有人能指点我正确的方向吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)