私はPyMCを独学していますが、次の問題に行き詰まりました:
連続測定からパラメーターを決定する必要があるモデルがあります。最初は、パラメータの事前確率は有益ではありませんが、各測定後に更新する必要があります (つまり、事後確率に置き換えます)。要するに、PyMC で順次更新を行いたいということです。
次の (多少構成された) 例を考えてみましょう。
- 測定 1: 10 問、9 問正解
- 測定 2: 5 問、3 問正解
もちろん、これはベータ/二項共役事前確率で分析的に解決できますが、これはここでのポイントではありません:)
あるいは、両方の測定値を組み合わせて n=15 と k=12 にすることもできます。ただし、これは単純すぎます。私は教育目的のために困難な道を歩みたい.
この回答で解決策を見つけました。ここでは、新しい事前確率が事後からサンプリングされます。これはほとんど私が望んでいるものですが、結果はサンプル数やその他の設定に依存するため、事前のサンプリングは少し面倒です。
私が試みた解決策は、次のように、測定と事前分布の両方を 1 つのモデルに別々に配置します。
n1, k1 = 10, 9
n2, k2 = 5, 3
theta1 = pymc.Beta('theta', alpha=1, beta=1)
outcome1 = pymc.Binomial('outcome1', n=n1, p=theta1, value=k1, observed=True)
theta2 = ? # should be the posterior of theta1
outcome2 = pymc.Binomial('outcome2', n=n2, p=theta2, value=k2, observed=True)
theta1
の事前としての事後を取得するにはどうすればよいtheta2
ですか? これは可能ですか、それとも私はベイジアン統計について究極の無知を示しただけですか?