ポリャ分布上の数値積分の提案


8

この問題は、ベイジアン統計モデリングプロジェクトから発生します。私のモデルで計算するために、被積分関数の一部が「ポリヤ」または「ディリクレ多項式」分布である積分を実行する必要があります。

p(nα)=(N!)Γ(Kα)Γ(α)KΓ(N+Kα)i=1KΓ(ni+α)ni!

ここで、およびN = K i = 1 n iは整数、n = n 1n 2n K 、およびα > 0です。一体型Iの計算に願い、0他の項のp nは| α D α、小規模に適していますNniN=i=1Knin=(n1,n2,,nK)α>00(other terms)p(n|α)dαN、しかし(MATLABで)私が試みた求積法は、が大きくなると壊れます。私はモンテカルロを試していません。私のプロジェクトでは、正確で高速な求積法が非常に便利です。N

現在、が大きい場合の「最良の」方法は、アルファのグリッド上でlog [ p n | α ]を計算し、正規化し、指数化することです。これは不正確です(ピーク以外の分布に関する詳細はすべて失われます)が、少なくとも数値は生成されます。Nlog[p(n|α)]

この計算を改善するためのアドバイス、またはさまざまなアルゴリズム/メソッドまたは既存のソフトウェアへのポインターをいただければ幸いです。

編集:私は多分私の評価ということを追加する必要があり、計算することによって行われたログP nは| αを計算するために、いくつか慎重に書かれたコード使用してログΓ X 大のためのxを、ではありません。問題を引き起こしています。p(n|α)logp(n|α)logΓ(x)x

EDIT 2:さらに、「大」の値の順になり最大で、nはI10 5の多くの小さな値と一緒に、N 、I。他の用語は数値的に適切に動作しています。おおよその適切な尾の振る舞いと簡略化として、あなたは取ることができますN108ni105ni

(other terms)=exp(α)


典型的な/具体的な例の積分を与えることができますか?たとえば、n_i、N、a、および(その他の用語)の値を指定しますか?
アンドリューモイラン

確かに!
うん

@sydeulissie:問題を解決しましたか(典型的な例を投稿しなかったため)?
GertVdE 2013

This is inaccurate (I lose essentially all detail about the distribution except its peaks), but at least produces a number. なぜこれが問題になるのかわかりません。ベイジアンアプローチの結果は常にピークに支配されます(occamのかみそりを考えてください)。ローカル機能は、最終的な確率に無視できる貢献をします。
BORT

回答:


-1

統合の場合、経験則として指数を扱う場合はガウス求積法を使用します。例として、シンプソンズ規則または台形規則で小さな領域に3次関数を統合する場合、大きなNは必要ありませんが、それらを指数関数に使用すると、収束を達成するために必要な巨大なNが生じます。したがって、常に指数ベースの内挿を使用してください(つまり、ガウス求積法)。これが失敗した場合、関数をプロットして、関数が振動している速さ、および積分領域で関数がどのように消滅/上昇するかを確認する必要があります。

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