每个数据点的均值变化

问题描述

我有以下模型。

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 (将#修改为@)