我正在尝试找到适合二项式调查数据的函数的参数 . 每个数据点实际上是大小为n的样本 . 如果我使用具有贝叶斯预测的动态模型(如West&Harrison的贝叶斯预测和动态模型第14.4章),我可以使用β二项式共轭先验方案来解释不同的样本大小 . 但是,我还希望以包含 data.n 列的方式在PyMC3中执行此操作 . 我已将模型设置如下:

import pymc3 as pm
import pandas as pd
import theano.tensor as T

data = pd.DataFrame({'P':[0.98, 0.98, 0.94, 0.91, 0.82],
't' : [1, 2, 3, 4, 5], 'n':[50, 10, 40, 30, 50]})

with pm.Model() as model:
    gamma = pm.Uniform('gamma', 0.9, 1.1, testval=1.)
    zeta = pm.Uniform('zeta', 0, 0.05, testval=0.001)
    beta = pm.Uniform('beta', 0, 5, testval = 0.5)
    likelihood = pm.Normal('P_obs', mu=1/(gamma + zeta*T.exp(beta*data.t)), sd=0.005, observed=data.P)
    start = pm.find_MAP()    
    trace = pm.sample(5000, step=pm.NUTS(scaling=start), start=start)

(我也不确定似然函数中的方差项 . 我必须让它很小才能工作 . 我尝试过HalfCauchy,但它没有那么好用 . 但这不是我的主要查询 . )