代码之家  ›  专栏  ›  技术社区  ›  Moran Reznik

如何从形状>1的PyMC3参数中获取所有值?

  •  0
  • Moran Reznik  · 技术社区  · 3 年前

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

    0 回复  |  直到 3 年前
    推荐文章