事前確率を表すには、次の 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 ノートブック (こちら) からのものです。