Наблюдаемая детерминированность в pymc3

#pymc #pymc3

#pymc #pymc3

Вопрос:

Я пытаюсь перенести модель из Infer.NET, и я борюсь с тем, как я могу создать детерминированную переменную, наблюдаемую в pymc3?

M, L ~ Бернулли

 # doesn't work ...
Deterministic("U %i" % i, switch(M[i], ~L[i], L[i]), observed=True)
  

Ответ №1:

Не совсем понятно, что вы пытаетесь смоделировать (вы, скорее всего, получите ответы с полным описанием проблемы и попыткой кода), но в pymc3 вы передаете данные через аргумент ‘observed’, чтобы указать функцию правдоподобия. Например, если вы хотите оценить вероятность успеха для случайной величины, распределенной по Бернулли, вероятность для модели будет равна

 likelihood = pm.Bernoulli('likelihood', prior_p_success, observed=data)
  

где prior_p_success — априорная вероятность успеха и data вектор ваших двоичных данных.