如何在PyMC3中区分先验和可能性

问题描述 投票:1回答:1

在PyMC3示例中,先验和可能性在with语句中定义,但如果它们是先验或可能性,则不会明确定义它们。我该如何定义它们?

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

我的问题是:PyMC3内部代码如何发现分布是先验还是可能?应该有一些明确的参数来告诉PyMC3内部关于分布类型(先验/可能性)。

我知道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)
pymc3
1个回答
2
投票

通过observed论证使它成为一个可能性项(在你的例子中,P[y|mu, sigma])。缺少RandomVariable论证的其他alpha变量(betasigmaobserved)被抽样为先验。

© www.soinside.com 2019 - 2024. All rights reserved.