Python PyMC3的验收率(大都会黑斯廷斯)
有人知道我如何看待PyMC3(大都会黑斯廷斯)的最终验收率吗?或者一般来说,如何查看pymc3.sample()返回的所有信息Python PyMC3的验收率(大都会黑斯廷斯),python,pymc3,Python,Pymc3,有人知道我如何看待PyMC3(大都会黑斯廷斯)的最终验收率吗?或者一般来说,如何查看pymc3.sample()返回的所有信息 谢谢让step=pymc3.Metropolis()做我们的取样器,我们可以通过 “步骤.接受” 仅适用于像我这样的初学者(pymc3),在每个变量/obj之后。输入“.”并按tab键;您将看到一些有趣的建议;) 给出一个示例,首先,设置模型: import pymc3 as pm3 sigma = 3 # Note this is the std of our da
谢谢让step=pymc3.Metropolis()做我们的取样器,我们可以通过 “步骤.接受”
仅适用于像我这样的初学者(pymc3),在每个变量/obj之后。输入“.”并按tab键;您将看到一些有趣的建议;) 给出一个示例,首先,设置模型:
import pymc3 as pm3
sigma = 3 # Note this is the std of our data
data = norm(10,sigma).rvs(100)
mu_prior = 8
sigma_prior = 1.5 # Note this is our prior on the std of mu
plt.hist(data,bins=20)
plt.show()
basic_model = pm3.Model()
with basic_model:
# Priors for unknown model parameters
mu = pm3.Normal('Mean of Data',mu_prior,sigma_prior)
# Likelihood (sampling distribution) of observations
data_in = pm3.Normal('Y_obs', mu=mu, sd=sigma, observed=data)
其次,执行模拟:
chain_length = 10000
with basic_model:
# obtain starting values via MAP
startvals = pm3.find_MAP(model=basic_model)
# instantiate sampler
step = pm3.Metropolis()
# draw 5000 posterior samples
trace = pm3.sample(chain_length, step=step, start=startvals)
使用上述示例,可通过以下方式计算验收率:
accept = np.sum(trace['Mean of Data'][1:] != trace['Mean of Data'][:-1])
print("Acceptance Rate: ", accept/trace['Mean of Data'].shape[0])
(我在一个在线教程中找到了这个解决方案,但我不太明白。)
参考资料:记住检查这类问题。