with pm.Model() as model:
w = pm.Uniform('w', 0, 1)
c = pm.Uniform('c', 0, 5)
b = 0.5
s = pm.Deterministic('s', pm.math.exp(-c * (w * d1 + (1-w) * d2)))
s_A = np.zeros((8))
s_A = pm.Deterministic('s_A', for i in range(8) : s_A[i] = pm.math.sum(s[i][j] for j in (0,1,2,4)))
s_B = np.zeros((8))
s_B = pm.Deterministic('s_B', for i in range(8) : s_B[i] = pm.math.sum(s[i][j] for j in (3,5,6,7)))
r = pm.Deterministic('r', b*s_A/(b*s_A + (1-b)*s_B))
y = pm.Binomial('y', n= 320, p = r, observed = y_observed )
trace = pm.sample(5000)
az.plot_posterior(trace, hdi_prob = 0.95)
我想用上述参数创建一个 pymc3 模型。d1 和 d2 都是 8*8 矩阵。当我尝试将值分配给 s_A 和 s_B 数组时,上面的代码显示语法错误。有人可以告诉我如何在 pymc3 模型中创建像 s_A 和 s_B 这样的变量。