Скажем, у меня есть 10 монет одного монетного двора, я переворачиваю их каждые 50 раз, теперь я хочу оценить смещение монетного двора, а также индивидуальное смещение всех монет.
То, как я хочу сделать это, выглядит следующим образом:
# Generate a list of 10 arrays with 50 flips in each
test = [bernoulli.rvs(0.5, size=50) for x in range(10)]
with pm.Model() as test_model:
k = pm.Gamma('k', 0.01, 0.01) + 2
w = pm.Beta('w', 1, 1)
thetas = pm.Beta('thetas', w * (k - 2) + 1, (1 - w) * (k - 2) + 1, shape = len(test))
y = pm.Bernoulli('y', thetas, observed=test)
Но это не работает, потому что теперь кажется, что pymc ожидает 50 монет при 10 бросках. Я могу взломать эту проблему в этом случае. Но я новичок в python и pymc (3), поэтому я хочу узнать, почему он ведет себя так и как должна выглядеть правильная симуляция этой ситуации.