pymc3 - 如何区分 PyMC3 中的先验和可能性
问题描述
在 PyMC3 示例中,先验和可能性在with
语句内部定义,但如果它们是先验或可能性,则没有明确定义。我如何定义它们?
在下面的示例代码中,alpha
并且beta
是先验和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)
解决方案
传递observed
参数使其成为可能性项(在您的示例中,P[y|mu, sigma]
)。缺少参数的其他RandomVariable
变量(alpha
、beta
和sigma
)observed
被采样为先验。
推荐阅读
- php - symfony 2.8 使用 if ($form->isSubmitted() && $form->isValid())
- jquery - 如何计算并显示两位小数的 MROUND 值
- swift - Swift:在视图中水平和垂直居中 NSAttributedString
- django - 如何在 django oscar 仪表板中添加推荐产品
- dart - 如何根据背景图像更改文本颜色 - Flutter
- x86 - 在 vs 2015 上找不到内在函数
- react-native - undefined 不是对象(评估 '_reactNativeNavigation.default.push')
- drupal-8 - 如何在drupal 8中为特定时间段安排特定内容类型的节点字段
- sql - DELETE 函数中的两个单独的 WHERE 子句
- android - 包含本地头文件时对“XXX”的未定义引用