0

我有以下模型。

with basic_model:
     lambda1 = pm.Gamma("lambda1", alpha=0.001, beta=0.001)
     p =  pm.Beta('p', 1, 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 条件更改费率。如何为每个数据点定义不同的平均值?

4

0 回答 0