1

私は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ですか? これは可能ですか、それとも私はベイジアン統計について究極の無知を示​​しただけですか?

4

1 に答える 1