3

私はPerlを使用して、それぞれが異なる成功確率( )を持つY約15〜40kの独立したベルヌーイ確率変数()の合計である確率変数()をモデル化しています。正式には、どこで。X_ip_iY=Sum{X_i}Pr(X_i=1)=p_iPr(X_i=0)=1-p_i

Pr(Y<=k)(どこにあるか)などの質問にすばやく答えることに興味がありkます。

現在、私はそのような質問に答えるためにランダムシミュレーションを使用しています。X_iそれぞれをそのに従ってランダムに描画し、すべての値をp_i合計してを取得します。このプロセスを数千回繰り返し、数分の1を返します。X_iY'Pr(Y'<=k)

明らかに、これは完全に正確ではありませんが、使用するシミュレーションの数が増えると精度が大幅に向上します。

正確な確率を取得するための合理的な方法を考えられますか?

4

3 に答える 3

3

まず、randこの目的のためにビルトインを使用することは避けます。これは、基盤となるCライブラリの実装に依存しすぎて信頼性が高くありません(たとえば、Windowsの範囲のカーディナリティが32,768であることを指摘する私のブログ投稿を参照してください)。rand

モンテカルロアプローチを使用するには、Rand :: MercenneTwisterなどの既知の優れたランダムジェネレーターから始めるか、 Random.orgのサービスの1つを使用して、CDFを事前計算してかなり安定しているとY仮定します。YそれぞれYが1回だけ使用される場合、CDFを事前に計算することは明らかに無意味です。

ウィキペディアを引用するには:

確率論と統計では、ポアソン二項分布は、独立したベルヌーイ試行の合計の離散確率分布です。

言い換えると、成功確率p1、…、pnを使用したn個の独立したyes/no実験のシーケンスにおける成功数の確率分布です。(強調鉱山)

ポアソン二項確率密度関数の閉形式の式が興味深い場合があります。記事はペイウォールの背後にあります:

また、計算速度と実装、および分析の簡略化に関するいくつかの利点について説明します。後者の例には、モーメントの計算と、二項係数および二項累積分布関数(cdf)の新しい三角関数公式の開発が含まれます。

于 2010-12-10T16:15:55.680 に答える
1

正確な解を得るには、2 つ以上の独立した確率変数の合計の確率分布が、それらの個々の分布の畳み込みであるという事実を利用できます。 畳み込みは少し高価ですが、変化する場合にのみ計算する必要がありますp_i

確率分布を取得したら、確率の累積和を計算することで CDF を簡単に取得できます。

于 2010-12-10T16:43:56.260 に答える
1

私が思い出す限り、これは正規分布として漸近的に終わるべきではありませんか? このニュースグループのスレッドも参照してください: http://newsgroups.derkeiler.com/Archive/Sci/sci.stat.consult/2008-05/msg00146.html

その場合、Statistics::Distrib::Normalを使用できます。

于 2010-12-10T11:42:51.173 に答える