代码之家  ›  专栏  ›  技术社区  ›  Demetri Pananos

如何实现联合hyerprior?

  •  1
  • Demetri Pananos  · 技术社区  · 6 年前

    第五章第三节大鼠肿瘤。一个层次模型是适合的,所使用的超先验不是pymc3中包含的密度之一。

    超优先级是 a*b*(a+b)^-2.5

    import pymc3 as pm
    with pm.Model() as model:
    
        def ab_dist(x):
            #Should be log density, from what I have read
            a = x[0]
            b = x[1]
            return a+b-5/2*(a+b)
    
        ab = pm.DensityDist('ab', ab_dist, shape = 2, testval=[2,2])
    
        a = ab[0]
        b = ab[1]
    
        theta = pm.Beta('theta',alpha = a,beta = b)
    
        Y= pm.Binomial('y', n = n, p = theta, observed = y)
    

    在这个阶段,我返回了一个错误

    ValueError: Input dimension mis-match. (input[0].shape[0] = 71, input[1].shape[0] = 20000)
    

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