我想用pymc3
模拟前面的(而不是后面的)y。
我首先定义了模型:
import pymc3 as pm
with pm.Model() as m:
mu = pm.Normal('mu', mu=0, sd=10)
sigma = pm.Uniform('sigma', lower=0, upper=10)
y = pm.Normal('y', mu=mu, sd=sigma)
trace = pm.sample(1000, tune=1000)
然后我尝试从模型中获得10个模拟y:
y_pred = pm.sample_ppc(trace, 10, m, size=10)
但结果是空洞的。我搜索了文档,但没有找到相关的例子。用pymc3
可以做到吗?
当没有观察到与模型定义相关时,trace
包含来自先前的样本。但是,这有时会失败。我们目前正在开发一个sample_prior
函数,可以使这个过程更简单,更直接:https://github.com/pymc-devs/pymc3/pull/2876