【发布时间】:2014-10-08 12:14:39
【问题描述】:
我有以下用 PyMC 编写的程序:
import pymc
from pymc.Matplot import plot as mcplot
def testit( passed, test_p = 0.8, alpha = 5, beta = 2):
Pi = pymc.Beta( 'Pi', alpha=alpha, beta=beta)
Tj = pymc.Bernoulli( 'Tj', p=test_p)
@pymc.deterministic
def flipper( Pi=Pi, Tj=Tj):
return Pi if Tj else (1-Pi)
# Pij = Pi if Tj else (1-Pi)
# return pymc.Bernoulli( 'Rij', Pij)
Rij = pymc.Bernoulli( 'Rij', p=flipper, value=passed, observed=True)
model = pymc.MCMC( [ Pi, Tj, flipper, Rij])
model.sample(iter=10000, burn=1000, thin=10)
mcplot(model)
testit( 1.)
它似乎工作正常,但我想从后验分布中提取参数。如何从Tj 和alpha/beta 从Pi 获得后p?
【问题讨论】: