確率的プログラミングによるスイッチポイント検出(pymc)


9

私は現在、ハッカーの確率的プログラミングとベイジアン手法の「本」を読んでいます。私はいくつかの章を読み、最初の章について考えていました。pymcの最初の例は、テキストメッセージ内の魔女の検出で構成されています。この例では、スイッチポイントが発生していることを示すランダム変数が示されています。MCMCステップの後、事後分布 が与えられます。τττここに画像の説明を入力してください

まず、このグラフからわかることは、スイッチポイントが45日目に発生した確率はほぼ50%であるということです。スイッチポイントがない場合はどうなりますか?スイッチポイントがあると想定してそれを見つけようとするのではなく、実際にスイッチポイントがあるかどうかを検出したいと思います。

著者は、「スイッチポイントが発生したのか」という質問に「変化がなかった場合、または時間の経過とともに変化が​​緩やかだった場合、事後分布は より広がっていただろう」と回答しています。しかし、どのように適切な方法でこれに答えることができますか。たとえば、スイッチポイントが発生した確率は90%であり、45日目に発生した確率は50%です。τ

モデルを変更する必要がありますか?または、これは現在のモデルで答えることができますか?


本の著者である@ Cam.Davidson.Pilonに言及します。
ショーンイースター

回答:


6

SeanEasterにはいくつかの良いアドバイスがあります。ベイズ因子は計算が難しい場合がありますが、特にPyMC2のベイズ因子に関するいくつかの優れたブログ投稿があります。

端的に関連する質問は、モデルの適合度です。このための公正な方法は、単なる検査です-事後研究者は私たちに適合度の証拠を与えることができます。引用のように:

「変化が発生しなかった場合、または時間の経過とともに変化が​​緩やかであった場合、事後分布はより広がっていただろう」τ

これは本当です。事後は、時間45の近くでかなりピークに達します。質量の> 50%は45にあると言いますが、スイッチポイントがない場合、質量は(理論的に)時間45で1/80 = 1.125%に近くなるはずです。

あなたが目指しているのは、モデルを前提として、観測されたデータセットを忠実に再構築することです。では、第2章、偽のデータを生成するシミュレーションは自分です。観測データが人工データと大きく異なる場合は、モデルが適切に適合していない可能性があります。

厳密ではない答えをお詫びしますが、実際には効率的に克服できなかった大きな問題です。


おそらくあなたの答えとは無関係です、私は声を出して考えています。シグモイドをデータに適合させ、ベータパラメーターに基づいて勾配が変化を示すかどうかを決定することは不可能ではないでしょうか。おそらく、スイッチポイントがあるかどうかを決定するしきい値は、例から学習できます。多分これはパラメータでも可能です。 1が 2と大きく異なる場合、それ以外のスイッチポイントはありません。これは、例から学習したしきい値を使用して実行することもできますλ λλλλ
Olivier_s_j

1
たとえば、モデルを近似します:、ここで?それはうまくいくと思い、スムーズな移行を可能にします。の勾配の推論により、切り替え点が存在するかどうかを判断できることは間違いありません。私はこれが本当に好きです、もっと探検すべきです。、P = 1 /1 + E X P - β T βλ1p+λ2(1p)p=1/(1+exp(βt))β
Cam.Davidson.Pilon 2014

モデルフィットの問題について、事後予測p値がフィットを評価する1つの方法であることを付け加えます。このペーパーを参照してください
ショーンイースター

2

これは、モデル比較の質問の詳細です。スイッチポイントのないモデルの方が、スイッチポイントのあるモデルよりもデータをよりよく説明できるかどうかに関心があります。その質問に答える1つのアプローチは、スイッチポイントがある場合とない場合のモデルのベイズ因子を計算することです。簡単に言うと、ベイズ因子は両方のモデルでのデータの確率の比率です。

K=Pr(D|M1)Pr(D|M2)=Pr(θ1|M1)Pr(D|θ1,M1)dθ1Pr(θ2|M2)Pr(D|θ2,M2)dθ2

場合スイッチポイントを使用してモデルであり、なしモデルであり、その後の高い値強くスイッチポイントモデルに有利と解釈することができます。(上にリンクされているウィキペディアの記事は、どのK値が注目に値するかについてのガイドラインを提供しています。)M1M2K

また、MCMCのコンテキストでは、上記の積分はMCMCチェーンからのパラメーター値の合計で置き換えられることに注意してください。ベイズ因子のより徹底的な取り扱いは、例とともにここから入手できます

スイッチポイントの確率を計算する問題は、を解くことと同じです。2つのモデル間で事前確率が等しいと仮定すると、モデルの事後確率はベイズ因子と同等になります。(ここのスライド5を参照してください。)次に、ベイズ係数と for n の要件を使用してを解くだけの問題です。検討中の(排他的)モデルイベント。P(M1|D)P(M1|D)i=1nP(Mi|D)=1

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.