ベータ分布の部分的な期待値(切り捨てられたベータの平均)を計算する方法は?


7

a = 2、b = 3、百分位数x = 0.4のベータ分布

ベータ分布がa = 2、b = 3の場合、区間[0、1] = a /(a + b)= 2/5 = 0.4および中央値=(a- 1/3)/(a + b-2 / 3)= 0.39、近いです。

私はpythonの解決策を探しています。scipy.stats.betaを使用して、間隔[ 0、0.4 ]の中央値をパーセントポイント関数で計算できます(cdfの逆数-パーセンタイル):

beta.ppf(0.4/2,a,b) = 0.2504

このベータ分布では、全体の平均と中央値が近いため(それぞれ0.4と0.39)、間隔[0、0.4]の中央値を使用して、間隔[0、0.4]の期待値(平均)を推定します。

間隔[0、0.4]の期待値(平均)を計算する方法はありますか?


1
原則として、解答で説明されている質問の計算エラーは修正しないでください。解答を「分割」するため、解答の修正は意味をなさなくなります。(一方で、コメントで提供された修正を行うことは別の問題です。)---私は答えを調整して補償しようとしますが、そのようなエラーは通常そのままにしておくのが最善です。
Glen_b-2017

1
申し訳ありません。私はそのようなルールを知りませんでした。
Arbi Haza Nasution 2017

回答:


8

上部中央付近にあるベータ中央値()の式は概算であることに注意してください。Pythonのベータ分布の逆累積分布関数(値関数)を使用して、効果的に「正確な」数値中央値を計算できるはずです(、およそ中央値が得られますが、式はを与え)。α13α+β23beta(2,3)0.38570.3846

切り捨てられた分布のこの平均は、ベータ版ではかなり単純です。正の確率変数の場合、

E(X|X<k)=0kxf(x)dx/0kf(x)dx

ここで、はパラメータおよびを持つベータの密度です(これを記述します):fαβf(x;α,β)

f(x;α,β)=1B(α,β)xα1(1x)β1,0<x<1,α,β>0

したがって、xf(x)=B(α+1,β)B(α,β)f(x;α+1,β)=αα+βf(x;α+1,β)

したがって、E(X|X<k)=αα+β0kf(x;α+1,β)dx/0kf(x;α,β)dx

現在、2つの積分は、Pythonですでに使用可能なベータCDFです。

我々が得る。これはシミュレーションと一致しています(シミュレーションはを与え)。α=2,β=3,k=0.4E(X|X<0.4)0.241951060.24194

中央値の場合、 、これもシミュレーションと一致しています(シミュレーションでは)。F1(12F(0.4;2,3);2,3)0.250401060.25038

この場合、2つはかなり近いですが、それは一般的な結果ではありません。それらは時々もっと大きく異なるかもしれません。


1
詳しい説明ありがとうございます。私はここ数週間前にここに尋ねるべきだったのに!
Arbi Haza Nasution 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.