2017-01-18 3 views
0

Если у меня есть модель, подобная той, что приведена ниже, как мне получить доступ к функции anano, чтобы получить значения (-и) для моей модели, я подхожу?Есть ли способ генерировать переменные из pymc3?

Это довольно простая модель, поэтому я могу просто рассчитать с необработанными function для моих переменных. Тем не менее, я намерен генерировать модели pymc3 динамически, когда некоторые переменные повторно/фиксированный/ограниченно и т.д.

Я знаю, что я могу получить доступ к функции Theano из model.makefn([expected]), но это будет зависеть от трансформированных аргументов как sigma_log_ вместо sigma.

В идеале, я ищу что-то вроде model.evalute([expected], alpha=1, beta=2)

Есть ли такой метод?

Благодаря

def function(a, b): 
    # do something 

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=2) 
    sigma = HalfNormal('sigma', sd=1) 

    # Expected value of outcome 
    expected = Deterministic('expected', function(alpha,beta)) 
    # Likelihood (sampling distribution) of observations 
    Y_obs = Normal('Y_obs', mu=function, sd=sigma, observed=Y) 

ответ

2

Типичный подход здесь будет первой выборки из апостериорного распределения в модели с чем-то вроде

with model: 
    trace = pm.sample(N_SAMPLES) 

затем использовать образцы, чтобы приблизить заднюю ожидаемое значение вашей функции.

Смежные вопросы