我对 python 和 pymc 还很陌生,想尝试使用 pymc 来解决问题。我正在模拟从祖父母到儿子的简单孟德尔遗传,但我不明白如何多次重新应用相同的随机模型。任何帮助表示赞赏。
@py.stochastic
def childOf(value=1, d=0, m=0):
pdra=d/2
pmra=m/2
# now return likelihood
if (value==0):
return -np.log((1-pdra)*(1-pmra))
elif (value==1):
return -np.log((1-pdra)*(pmra)+(pdra)*(1-pmra))
else:
return -np.log((pdra*pmra))
p = [0.25,0.5,0.25]
gdd = py.Categorical("gdd", p, size=1)
gdm = py.Categorical("gdm", p, size=1)
gmd = py.Categorical("gmd", p, size=1)
gmm = py.Categorical("gmm", p, size=1)
gm=childOf('gm',d=gmm,m=gmd)
gd=childOf('gd',d=gdm,m=gdd)
gs=childOf('gs',d=gm,m=gd)
错误是一个以 TypeError 结尾的长字符串:'numpy.ndarray' object is not callable on the first ChildOf