この問題は、ベイジアン統計モデリングプロジェクトから発生します。私のモデルで計算するために、被積分関数の一部が「ポリヤ」または「ディリクレ多項式」分布である積分を実行する必要があります。
ここで、およびN = ∑ K i = 1 n iは整数、n = (n 1、n 2、… 、n K )、およびα > 0です。一体型Iの計算に願い、∫ ∞ 0(他の項)のp (nは| α )D α、小規模に適していますN、しかし(MATLABで)私が試みた求積法は、が大きくなると壊れます。私はモンテカルロを試していません。私のプロジェクトでは、正確で高速な求積法が非常に便利です。
現在、が大きい場合の「最良の」方法は、アルファのグリッド上でlog [ p (n | α )]を計算し、正規化し、指数化することです。これは不正確です(ピーク以外の分布に関する詳細はすべて失われます)が、少なくとも数値は生成されます。
この計算を改善するためのアドバイス、またはさまざまなアルゴリズム/メソッドまたは既存のソフトウェアへのポインターをいただければ幸いです。
編集:私は多分私の評価ということを追加する必要があり、計算することによって行われたログP (nは| αを)計算するために、いくつか慎重に書かれたコード使用してログΓ (X )大のためのxを、ではありません。問題を引き起こしています。
EDIT 2:さらに、「大」の値の順になり最大で、nはI〜10 5の多くの小さな値と一緒に、N 、I。他の用語は数値的に適切に動作しています。おおよその適切な尾の振る舞いと簡略化として、あなたは取ることができます
This is inaccurate (I lose essentially all detail about the distribution except its peaks), but at least produces a number.
なぜこれが問題になるのかわかりません。ベイジアンアプローチの結果は常にピークに支配されます(occamのかみそりを考えてください)。ローカル機能は、最終的な確率に無視できる貢献をします。