В примерах 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)