问题描述
我有以下模型。
with basic_model:
lambda1 = pm.Gamma("lambda1",alpha=0.001,beta=0.001)
p = pm.Beta('p',1,)
z = [0.0] * len(x['Length'].values)
Y_obs = [0.0] * len(x['Length'].values)
for i in range(len(x['Length'].values)):
z[i] = pm.Bernoulli('z[i]',p)
Y_obs[i] = pm.Poisson("Y_obs[i]",mu=lambda1*z[i]*x['Length'].values+0.001,observed=x['Count'].values[i])
trace = pm.sample(7000,tune=2000,cores=1,return_inferencedata=True)
它对名称 Y_obs[i]
和 z[i]
产生错误。我知道我不能更改变量使用相同的名称,但我无法弄清楚如何在每次迭代时更改 Y_obs[i]
的速率。在稍后的阶段,我也将使用 if-else 条件更改费率。如何为每个数据点定义不同的平均值?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)