超幾何分布の求め方

当たりの入った箱から、戻さずにまとめて取り出したとき、当たりがちょうど何個入るかの確率を求めます。二項分布とちがい、1 個取るごとに残りの中身が変わるところを正しく扱います。

50 本のくじに当たりが 10 本あります。5 本引いたとき、当たりがちょうど 2 本入る確率はいくらか。引いたくじを戻さない場合、この確率は超幾何分布に従います。

P(X=k)=(Kk)(NKnk)(Nn)P(X = k) = \dfrac{\dbinom{K}{k}\dbinom{N - K}{n - k}}{\dbinom{N}{n}}

読み方は素直です。分母は「NN 個から nn 個を選ぶ選び方の総数」です。分子は「当たり KK 個から kk 個を選び、かつ外れ NKN - K 個から残りの nkn - k 個を選ぶ選び方の数」です。すべての選び方が同じ確からしさで起こるとして、当てはまるものの割合を取っています。

期待値と分散は次の形になります。

E[X]=nKNV[X]=nKN(1KN)NnN1E[X] = n\dfrac{K}{N} \qquad V[X] = n\dfrac{K}{N}\left(1 - \dfrac{K}{N}\right)\dfrac{N - n}{N - 1}

既定の入力 N=50N = 50K=10K = 10n=5n = 5k=2k = 2 で見てみます。

分母の (505)\dbinom{50}{5} は 2118760 です。分子は (102)×(403)\dbinom{10}{2} \times \dbinom{40}{3} で、45×988045 \times 9880 の 444600 になります。割ってちょうど 2 本の確率はおよそ 0.2098 です。

2 本以下の確率は、0 本・1 本・2 本の場合を足しておよそ 0.9517 になります。当たりの本数の期待値は 5×10÷505 \times 10 \div 50 でちょうど 1、標準偏差はおよそ 0.8571 です。

二項分布との違い

引いたくじを毎回戻すのなら、当たりを引く確率は常に 0.2 のままで、二項分布になります。その場合の確率は (52)×0.22×0.83\dbinom{5}{2} \times 0.2^2 \times 0.8^3 でおよそ 0.2048 です。超幾何分布の 0.2098 と近いですが、同じではありません。

違いは分散にはっきり出ます。二項分布の分散は 5×0.2×0.85 \times 0.2 \times 0.8 で 0.8 ですが、超幾何分布はそこに (Nn)÷(N1)(N - n) \div (N - 1)、この例では 45÷4945 \div 49 が掛かって 0.7347 になります。この係数を有限母集団修正といいます。

戻さずに引くと、1 本引くごとに残りの中身が偏りを打ち消す向きに変わります。当たりを引けば残りの当たりが減るので次は当たりにくくなり、外れを引けばその逆になります。この打ち消し合いのぶん、結果のばらつきが小さくなるわけです。nnNN に対して十分小さければ修正の係数は 1 に近づき、二項分布で近似してかまわなくなります。

注意

全体の個数は 1000 までにしてあります。組み合わせの数が桁あふれを起こさないようにするためです。

取り出す個数より多い当たりを指定することはできません。当たりの数を超える指定や、外れが足りなくなる指定は、確率 0 として返します。