如何使用 pymc3 从先验模拟

How to simulate from priors with pymc3

我想用 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