第五章第三节大鼠肿瘤。一个层次模型是适合的,所使用的超先验不是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)