我在PyMC3中构建了一个非制冷模型:
with pm.Model() as unpooled:
# PRIORS
alpha = pm.Uniform('alpha',lower=-5,upper=5, shape=len(set(Y.values)))
beta = pm.Normal('beta',mu=0,sd=1, shape=len(set(Y.values)))
sigma = pm.Uniform('sigma',lower=0.01,upper=3)
# LIKLIHOOD
e = X['flavanoids'].values * beta[Y.values.astype(int)] + alpha[Y.values.astype(int)]
y = pm.Normal('y',mu=e, sd=sigma, observed=Y.values)
# SAMPLE AND PLOT TRACE
trace = pm.sample(2000)
我知道如果
beta
如果是1,我可以通过以下方法得到最大概率估计:
ppc = pm.fast_sample_posterior_predictive(trace, samples=1_0000, var_names=['beta'])
preds = ppc['beta'].mean(0)
但是由于形状大于1,我应该得到更多的1值。
如何提取该值?