2017-01-18 15 views
0

私は下のようなモデルを持っていますが、フィッティングしているモデルの値を取得するためにtheano関数にアクセスするにはどうしたらいいですか?pymc3から変数を生成する方法はありますか?

これはかなり基本的なモデルなので、私の変数には生のfunctionを計算することができます。しかし、私は

いくつかの変数が再利用されている場合、動的/固定/など有界pymc3モデルを生成しようとする私は、私はmodel.makefn([expected])からtheano機能にアクセスすることができます知っているが、これは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) 

あなたの関数の事後期待値に近づけるために、サンプルを使用してのようなもので、モデルの事後分布からの最初のサンプルになります。

関連する問題