2017-12-14 1 views
0

は:PyMC3モデルに制約を追加するにはどうすればよいですか?私たちはPyMC3ため、以下の線形回帰の例を考えると

http://docs.pymc.io/notebooks/getting_started.html#A-Motivating-Example:-Linear-Regression

はどのように我々はa + b1 + b2 = 1 or a^2 + b1^2 = 25などの制約が含まれるのでしょうか?

私はバウンドを使用して変数の境界を作成できますが、より複雑な制約を追加する方法がわかりませんでした。

ありがとうございました!

答えて

2

一般的な解決策は、潜在的なものを使用することです。

const = pm.Potential('const', pm.math.switch(pm.math.eq(a**2 + b1**2, 25), 
              0, 
              -np.inf)) 

潜在的可能性は、モデルの可能性に追加できる任意の要素です。この例では、パラメータが制約を満たす場合は何も追加しません。それ以外の場合は-infを追加します。

今後の参照用にもご相談ください。here

関連する問題