PyMC3中的加权回归

时间:2016-11-01 16:02:50

标签: python regression bayesian pymc3

我试图找到适合二项式调查数据的函数参数。每个数据点实际上是一个大小为 n 的样本。如果我使用贝叶斯预测的动态模型(如West& Harrison&#39>贝叶斯预测和动态模型第14.4章),我可以使用beta二项式共轭先验方案来解释不同的样本量。但是,我还希望以包含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,但它没有那么好用。但是那个不是我的主要查询。)

0 个答案:

没有答案