アルファとベータが大きいベータ分布の値を(数値的に)概算するにはどうすればよいですか?


11

大きな整数のアルファ、ベータ(たとえば、アルファ、ベータ> 1000000)のベータ分布の値を計算するための数値的に安定した方法はありますか?

実際、モードの周りに99%の信頼区間が必要なだけです。

追加:申し訳ありません。私の質問は、思ったほど明確に記述されていませんでした。私がやりたいのはこれです。コンベヤーベルト上の製品を検査する機械があります。これらの製品の一部は機械によって拒否されます。ここで、機械オペレーターが検査設定を変更した場合、彼/彼女の推定不合格率と、現在の推定値の信頼性についてのヒントを表示します。

したがって、実際の拒否率を確率変数Xとして扱い、拒否されたオブジェクトNと受け入れられたオブジェクトMの数に基づいてその確率変数の確率分布を計算すると思いました。Xの一様分布を仮定すると、これはNとMに依存するベータ分布。この分布をユーザーに直接表示するか、間隔[l、r]を見つけて、実際の棄却率がp> = 0.99でこの間隔に収まるように(shabbychefの用語を使用)、これを表示できます。間隔。M、Nが小さい場合(パラメーターの変更直後)、分布を直接計算し、間隔[l、r]を概算できます。ただし、M、Nが大きい場合、x ^ N *(1-x)^ Mは小さすぎて倍精度の浮動小数点数として表されるため、この単純なアプローチではアンダーフローエラーが発生します。

私の最善の策は、小さなM、Nに単純なベータ分布を使用し、M、Nがしきい値を超えるとすぐに同じ平均と分散の正規分布に切り替えることです。それは理にかなっていますか?


1
あなたは数学を知りたいですか、それとも単にRなどのコードソリューションを知りたいですか?
John

これをC#で実装する必要があるので、数学は良いでしょう。組み込みのR / Matlab / Mathematica関数に依存していない場合、コードサンプルも問題ありません。C#に変換できません。
nikie、2010

PDF、CDF、または逆CDF?
JMは統計家ではありません

ベータを主張しない場合は、非常によく似た非常に単純な代数形式のクマラスワミー分布を使用できます。en.wikipedia.org/ wiki
Tim

回答:


13

法線近似は、特に尾部で非常にうまく機能します。平均を使用との分散。例えばのような厳しい状況(歪度が懸念される可能性がある場合)での裾確率で、絶対的な相対誤差の周りのピーク未満であるあなたがいるとき平均から1 SD以上。(これは、ベータが非常に大きいためではありません。場合、絶対相対誤差はによって制限されますα/(α+β)αβ(α+β)2(1+α+β)α=106,β=1080.000260.00006α=β=1060.0000001。)したがって、この近似は、本質的に99%の間隔を含むあらゆる目的に最適です。

質問の編集に照らして、被積分関数を実際に積分してベータ積分を計算しないことに注意してください。もちろん、アンダーフローが発生します(ただし、積分にはそれほど貢献しないため、アンダーフローは実際には問題になりません)。 。Johnson&Kotz(Distributions in Statistics)に記載されているように、積分を計算または近似する方法は数多くあります。オンライン計算機はhttp://www.danielsoper.com/statcalc/calc37.aspxにあります。実際には、この積分の逆が必要です。逆を計算するいくつかの方法は、http://functions.wolfram.com/GammaBetaErf/InverseBetaRegularized/の Mathematicaサイトに記載されています。。コードはNumerical Recipes(www.nr.com)で提供されています。本当に素晴らしいオンライン計算機は、Wolfram Alphaサイト(www.wolframalpha.com)です。inverse beta regularized (.005, 1000000, 1000001)左のエンドポイントとinverse beta regularized (.995, 1000000, 1000001)右のエンドポイントに入力します(%の間隔)。α=1000000,β=1000001


パーフェクト!私はいつもNRの本を机の上に置いていましたが、そこを見るつもりはありませんでした。どうもありがとう。
nikie、2010

3

簡単なグラフィカルな実験は、アルファとベータの両方が非常に大きい場合、ベータ分布が正規分布のように見えることを示唆しています。「ベータ分布制限通常」をグーグル検索することで、http: //nrich.maths.org/discus/messages/117730/143065.html?1200700623を見つけました。

ベータ分布のWikipediaページでは、平均、モード(vは大きなアルファとベータの平均に近い)、分散が示されるため、同じ平均と分散の正規分布を使用して近似値を取得できます。それがあなたの目的にとって十分に良い近​​似であるかどうかは、あなたの目的が何であるかに依存します。


ばかげた質問:そのグラフィカルな実験はどのように行いましたか?アルファ/ベータの分布を100程度にプロットしようとしましたが、アンダーフローエラーのため何も表示されませんでした。
nikie、

被積分関数をプロットしたくない:積分をプロットしたい。ただし、さまざまな方法で被積分関数を取得できます。1つは、Wolfram Alphaサイトで「plot D(beta(x、1000000、2000000)、x)/ beta(1、1000000、2000000)from 0.3325 to 0.334」と入力することです。積分自体は、「Plot beta(x、1000000、2000000)/ beta(1、1000000、2000000)from 0.3325 to 0.334」で見られます。
whuber

私は被積分関数、つまりベータ分布のpdfをStataにプロットしました-pdfの組み込み関数があります。大きなアルファとベータの場合、プロットの範囲を制限して、それが正常に近いことを確認する必要があります。私がそれを自分でプログラミングしている場合は、その対数を計算し、最後に累乗します。これはアンダーフローの問題に役立つはずです。分母のベータ関数は、整数アルファおよびベータの階乗に相当するガンマ関数で定義され、多くのパッケージ/ライブラリには、代わりにlngamma()またはlnfactorial()が含まれています。
2010

2

ベータRVからランダムに抽出される確率が0.99の確率で区間内にあるような区間が必要であると推測しますとボーナスポイントはモードの周りで対称です。ガウスの不平等やVysochanskii-Petuninの不平等は、間隔を含める間隔構築することができます、そしてかなりまともな近似値になります。十分に大きい場合、とを別個の数として表す場合でも数値のアンダーフローの問題が発生するため、このルートで十分な場合があります。[l,r]lr[l,r]α,β lr


アルファとベータが離れすぎていない場合(つまり、アルファ/ベータが上下に制限されている場合)、ベータ[アルファ、ベータ]のSDは1 / Sqrt(アルファ)に比例します。たとえば、alpha = beta = 10 ^ 6の場合、SDは1 / Sqrt(8)/ 1000に非常に近いです。単精度浮動小数点数のみを使用している場合でも、lとrの表現に問題はないと思います。
whuber

つまり、は「十分な大きさ」ではないということです;)106
shabbychef

1
ええ、それはベータ版アプリケーションのクレイジーな数です。ところで、これらの不等式は、すべての分布に対して極値であるため(特定の制約を満たすため)、良い間隔を生成しません。
whuber

@whuber:そうです、彼らはクレイジーな数字です。私の素朴なアルゴリズムでは、「正気」の数値は簡単でうまく機能しましたが、「クレイジー」パラメータの計算方法を想像することができませんでした。したがって問題。
nikie、2010

2
はい、そうです。alpha+ betaが10 ^ 30を超えると、ダブルスで問題が発生します:-)。(ただし、lとrをalpha /(alpha + beta)の平均との差として表す場合、アルファまたはベータが約10 ^ 303を超えるまで問題ありません。)
whuber

1

場合ベータ分布する変数であり、それはの対数確率である、すなわち(:ほぼ正規分布している。これは、のように沿うような高度に歪んだベータ分布のための真もある。p l o g p /1 p m i n α β > 100pplog(p/(1p))min(α,β)>100

例えば

f <- function(n, a, b) {
    p <- rbeta(n, a, b)
    lor <- log(p/(1-p))
    ks.test(lor, 'pnorm', mean(lor), sd(lor))$p.value
}
summary(replicate(50, f(10000, 100, 1000000)))

通常、次のような出力を生成します

summary(replicate(50、f(10000、100、1000000)))最小 第1四半期 中央値第3四半期 マックス。0.01205 0.10870 0.18680 0.24810 0.36170 0.68730

つまり、典型的なp値は約0.2です。

したがって、10000個のサンプルを使用しても、コルモゴロフ-スミルノフ検定には、高度に歪んだベータ分布変数の対数オッズ比変換を区別する能力がありません。α=100,β=100000

ただし、自体の分布に関する同様のテストp

f2 <- function(n, a, b) {
    p <- rbeta(n, a, b)
    ks.test(p, 'pnorm', mean(p), sd(p))$p.value
}
summary(replicate(50, f2(10000, 100, 1000000)))

のようなものを生成します

summary(replicate(50, f2(10000, 100, 1000000)))
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
2.462e-05 3.156e-03 7.614e-03 1.780e-02 1.699e-02 2.280e-01 

一般的なp値は0.01前後

R qqnorm関数はまた、おおよその正規性を示す対数オッズ分布の非常に直線的なプロットを生成する有用な視覚化を提供します。ベータdsitribute変数の分布は、非正規性を示す特徴的な曲線を生成します

したがって、両方が100を超えている限り非常に歪んだ値であっても、対数オッズ空間でガウス近似を使用することは妥当です。α,β

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