以为我会从这个例子开始: http ://www.databozo.com/2014/01/17/Exploring_PyMC3.html
但是,当我使用 pymc 2.3 精确地按照示例进行操作时,我得到一个退出并告诉 API 已更改 UserWarning:不推荐使用 MCMC() 语法。请通过 M = MCMC(input) 显式传入节点。'不推荐使用 MCMC() 语法。请通过 M = MCMC(input).') 显式传入节点,但我不知道如何更改示例以准确提供模型函数的内容以及如何处理 'with' 子句?
有问题的代码是:
%pylab inline
import scipy
import numpy as np
x = np.array(range(0,50))
y = np.random.uniform(low=0.0, high=40.0, size=200)
y = map((lambda a: a[0] + a[1]), zip(x,y))
import matplotlib.pyplot as plt
plt.scatter(x,y)
以上示例数据生成器工作正常
import pymc as pm
import numpy as np
trace = None
with pm.Model() as model: <<<<<<indicated as the error line
alpha = pm.Normal('alpha', mu=0, sd=20)
beta = pm.Normal('beta', mu=0, sd=20)
sigma = pm.Uniform('sigma', lower=0, upper=20)
y_est = alpha + beta * x
likelihood = pm.Normal('y', mu=y_est, sd=sigma, observed=y)
start = pm.find_MAP()
step = pm.NUTS(state=start)
trace = pm.sample(2000, step, start=start, progressbar=False)
pm.traceplot(trace);