森北出版の「Pythonで体験するベイズ推論」を読み進めていたら、2章で、Pythonのdaftというライブラリを用いて、グラフィカルモデルを作っていたのですが、そのソースコードは載っていなかったので自分で作ってみました。
作ったのは以下のグラフィカルモデル
参考にしたのは次のサイト。
daftでグラフィカルモデル
このサイトがかなり詳しく説明してくれています。
ソースコード
import daft from matplotlib import rc rc("font", family="Ricty", size=15) rc("text", usetex="True") pgm = daft.PGM(shape=[6,6]) # Nodes pgm.add_node(daft.Node("alpha", r"$\alpha$", 4, 5)) # 名前 ラベル 座標 pgm.add_node(daft.Node("tau", r"$\tau$", 1, 4.5)) pgm.add_node(daft.Node("lambda_1", r"$\lambda_1$", 3, 4)) pgm.add_node(daft.Node("lambda_2", r"$\lambda_2$", 5, 4)) pgm.add_node(daft.Node("lambda", r"$\lambda$", 2, 3)) pgm.add_node(daft.Node("obs", "obs", 2, 2, observed=True)) # Edges pgm.add_edge("alpha", "lambda_1") pgm.add_edge("alpha", "lambda_2") pgm.add_edge("tau", "lambda") pgm.add_edge("lambda_1", "lambda") pgm.add_edge("lambda_2", "lambda") pgm.add_edge("lambda", "obs") pgm.render() pgm.figure.savefig("pymc_p43.png")