0

我在 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 值。如何提取该值?

4

0 回答 0