事前確率を表すには、次の 2 つの主要な属性を持つ Stochastic クラスのインスタンスが必要です。
value : the variable's current value
logp : the log probability of the variable's current value given the values of its parents
使用しているディストリビューションの名前で事前確率を初期化できます。
可能性を表すには、いわゆる Data Stochastic が必要です。つまり、observedフラグが に設定されているクラス Stochastic のインスタンスですTrue。この変数の値は変更できず、サンプリングされません。observedここでも、使用している分布の名前で尤度を初期化できます (ただし、フラグをに設定することを忘れないでくださいTrue)。
次の設定があるとします。
import pymc as pm
import numpy as np
import theano.tensor as t
x = np.array([1,2,3,4,5,6])
y = np.array([0,1,0,1,1,1])
以下を使用して単純なロジスティック回帰を実行できます。
with pm.Model() as model:
#Priors
b0 = pm.Normal("b0", mu=0, tau=1e-6)
b1 = pm.Normal("b1", mu=0, tau=1e-6)
#Likelihood
z = b0 + b1 * x
yhat = pm.Bernoulli("yhat", 1 / (1 + t.exp(-z)), observed=y)
# Sample from the posterior
trace = pm.sample(10000, pm.Metropolis())
上記のほとんどは、Chris Fonnesbeck の iPython ノートブック (こちら) からのものです。