PyMC3中如何区分先验和似然

How to distinguish between priors and likelihood in PyMC3

在 PyMC3 示例中,先验和似然在 with 语句中定义,但如果它们是先验或似然则未明确定义。我该如何定义它们?

在下面的示例代码中,alphabeta 是先验,y_obs 是似然(如 PyMC3 示例所述)。

我的问题是:PyMC3 内部代码如何确定分布是先验分布还是似然分布?应该有一些明确的参数来告诉 PyMC3 内部有关分布类型的信息 (prior/likelihood)。

我知道 y_obs 是可能性,但我可以定义更多 y_obs1 y_obs2。 PyMC3 将如何识别哪个是可能性,哪个是先验。

from pymc3 import Model, Normal, HalfNormal

regression_model = Model()  
with regression_model:  

    alpha = Normal('alpha', mu=0, sd=10)
    beta = Normal('beta', mu=0, sd=10, shape=2)

    sigma = HalfNormal('sigma', sd=1)

    mu = alpha + beta[0] * X[:,0] + beta[1] * X[:,1]

    y_obs = Normal('y_obs', mu=mu, sd=sigma, observed=y)

传递 observed 参数使其成为似然项(在您的示例中,P[y|mu, sigma])。缺少 observed 参数的其他 RandomVariable 变量(alphabetasigma)被采样为先验。