У меня есть модель, описанную в pymc3, используя следующие:Как установить параметры распределения Бернулли в pymc3
from pymc3 import *
basic_model = Model()
with basic_model:
# Priors for unknown model parameters
alpha = Normal('alpha', mu=0, sd=10)
beta = Normal('beta', mu=0, sd=10, shape=18)
sigma = HalfNormal('sigma', sd=1)
# Expected value of outcome
mu = alpha + beta[0]*X1 + beta[1]*X2 + beta[2]*X3
# Likelihood (sampling distribution) of observations
Y_obs = Normal('Y_obs', mu=mu, sd=sigma, observed=Y)
Однако мои Y
s не нормально распределены, но являются бинарными (так, Бернулли, я думаю). Я не могу понять, как изменить формулу Normal
Y на Bernoulli
, хотя из-за того, что я не могу понять, какие параметры будут в этом случае Y_obs
.
Спасибо. Это имеет смысл (хотя я знаю о логистической регрессии, но я не мог понять, как моделировать это байесовским способом). Я сейчас предлагаю свои изменения и опубликую здесь, как это происходит. – recluze
Ну, это работает, но я получаю «точные» значения для всех 'бета' со стандартным отклонением '0,00' для всех из них! Я даже не уверен, какой вопрос задавать здесь, чтобы продолжить, но я уверен, что я делаю что-то не так :(... (Моя цель - просто получить некоторые сведения о моих данных - чисто исследовательские) – recluze
Звуки например, у сэмплера возникают трудности с принятием новых точек на выборку. Какой пробоотборник вы используете и как вы устанавливаете отправную точку? [Здесь] (https://github.com/pymc-devs/pymc3/blob/master/pymc3/examples /logistic.py) является примером логистической регрессии с pymc3, которую вы могли бы попробовать. – Kiudee