gaiaskyの技術メモ

ベイズ、機械学習などのデータサイエンスがテーマ。言語はpythonで。

Kruschkeのモデルダイアグラム

モデルの表記形式

ベイズ推定におけるモデルの表記形式としては、有向グラフが最も一般的であろうと思う。 一方、「ベイズ統計モデリング」の原著者であるKruschke先生は、新しい表記形式でモデルを記載している。

800頁近いボリュームと9000円程度の出費と、購入には中々勇気が必要だったが、 内容はベイズの公式やMCMCの仕組みなど基礎的な話から始まり、仮設検定のベイズアプローチ、階層ベイズ、GLMなど 応用に入っていく流れで、非常に勉強になった。費用と時間を掛けた価値は十分にあったと思う。 これからベイズを学ぶ人には、個人的にはお勧め。

このダイアグラムは、その理解のしやすさから、他の書籍(Kruschke先生以外の人の書籍)でも使われ始めているようで、 「Kruschkeのダイアグラム」と呼ばれている。

Kruschkeのダイアグラム

Kruschkeのダイアグラム(以降、単にダイアグラムと記載)は、書籍や先生のブログを見るのが一番早い。 モデルにおいて、どのような確率分布が組み合わされてデータが生成されると仮定しているか、 視覚的に非常に分かりやすい表記になっている。

doingbayesiandataanalysis.blogspot.com

モデルの有向グラフは、pymc3の3.5を使っていれば、pm.model_to_graphviz(model)を使えば、 コードからgraphvizを使って自動的に生成される。(例えば、以前の記事参照)

gaiasky.hatenablog.com

ダイアグラムはどうやって書くのが良いかと調べていたところ、LibreOfficeのDrawで、テンプレートを作って 公開してくれている人がいた。

www.sumsar.net

LibreOfficeマイクロソフトOfficeに近い(これらのファイルも作成・編集可能)ツールで、 オープンソースなので無料で使える。(Macでも、Linuxでも使える)

Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People

有向グラフは、pythonコードから自動生成できるので楽ちんだが、 複雑なモデルの場合はダイアグラムの方が分かりやすいと思うので、 複雑なモデルはこちらを使おうと思う。