PyMC3でのベイジアンモデルの選択


11

私のデータでベイジアンモデルを実行するためにPyMC3を使用しています。

私はベイジアンモデリングに不慣れですが、このサイトのいくつかのブログ投稿、Wikipedia、およびQAによると、ベイズ係数とBIC基準を使用して、データを最もよく表すモデル(生成するモデル)を選択できるようにする有効なアプローチのようです私のデータ)。

ベイズ係数を計算するには、比較するモデルの相対的な尤度が必要です。少し混乱するかもしれませんが、可能性を得るには2つの方法があると思います(間違っている場合は修正してください)。

  • モデルが単純な場合の代数的方法:ウィキペディアのベイズ因子の例のページを参照

  • 数値的な方法:これは、MCMCアルゴリズムでPyMC3を実行する方法です。

PyMC3で尤度にアクセスしてモデルを比較するにはどうすればよいですか?私model.logpは、ドキュメントによると、「対数確率密度関数」である方法を見つけました。それを使用して可能性を取得できますか?

おまけの質問:2つのモデルを比較すると、両方の尤度の比率が計算されます。複数のモデルを比較したい場合はどうなりますか?

PyMC3の具体的な例は非常に役立ちます。

回答:


15

実際にmodel.logp()を使用して、モデルの尤度を計算できます。入力として、ポイントが必要です。たとえば、私が実行できるサンプルディレクトリのBESTモデル:

np.exp(model.logp({'group1_mean': 0.1, 
                   'group2_mean': 0.2, 
                   'group1_std_interval': 1., 
                   'group2_std_interval': 1.2, 
                   'nu_minus_one_log': 1}))

このモデルは変換された変数を使用しているため、これらを指定する必要があることに注意してください。次に、そのexp()を取得して、たとえばscipy.integrateによって提供される数値積分器内で使用できます。問題は、パラメーターが5つしかない場合でも、非常に遅くなることです。

ベイズ因子は、完全なパラメーター空間で統合する必要があるため、一般に計算が非常に困難です。そのためにMCMCサンプルを使用するいくつかのアイデアがあります。詳細については、この投稿、特にコメントセクションを参照してください:https : //radfordneal.wordpress.com/2008/08/17/the-harmonic-mean-of-the-likelihood-worst-monte-carlo-method-ever / BICのケースは残念ながら似ています。

ベイズファクターを本当に計算したい場合は、サベージディッキー比検定を確認することもできます(例:http : //drsmorey.org/bibtex/upload/Wagenmakers : etal : 2010.pdfを参照)。ただし、その用途は限られています。

私はあなたが多くの意見や解決策(BFのように実装が難しいもの)のある分野であるモデル比較をしようとしていると思います。計算が非常に簡単な指標の1つは、逸脱情報基準です。欠点もありますが、修正できるものもあります(http://onlinelibrary.wiley.com/doi/10.1111/rssb.12062/abstractを参照)。残念ながら、コードpymc3はまだ移植していませんが、かなり簡単です(pymc2の実装については、こちらを参照してください:https : //github.com/pymc-devs/pymc/blob/895c24f62b9f5d786bce7ac4fe88edb4ad220364/pymc/MCMC.py# L410)。

Kruschkeは、完全なモデルを構築し、どのパラメーターが重要であるかを知らせるというアプローチを支持しています。変数の選択をモデル自体に組み込むこともできます(例:http : //arxiv.org/pdf/math/0505633.pdfを参照)。

最後に、より完全な処理については、この最近のブログ投稿を参照してください:http : //jakevdp.github.io/blog/2015/08/07/frequencyism-and-bayesianism-5-model-selection/


1
DICをpymc3に追加するための問題をオープンしました:github.com/pymc-devs/pymc3/issues/797
twiecki
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.