DB/R/統計/データサイエンス/投資話についてつらつらと

世のため自分のためのアウトプット

R 統計学(statistics) 解説記事

【R言語と統計の備忘録】幾何分布のまとめ

投稿日:

離散型の確率分布であり、二項分布を拡張した分布の一つである幾何分布についてまとめました。
二項分布については以下を参照して下さい。

【R言語と統計の備忘録】二項分布のまとめ

~目次~

1. 幾何分布の概要

2. 幾何分布の確率密度関数

3. 幾何分布の期待値と分散(モーメント)

4. 幾何分布のRでの扱い方

1. 幾何分布の概要

幾何分布とは、成功(発生)確率がpの独立なベルヌーイ試行Tが初めて成功するまでの試行回数をxとし、x回目で初めてTが成功する確率の分布となります。
(二項分布はx回の試行において、独立なベルヌーイ試行Tが成功する回数がnとなる確率でした)

幾何分布となるものには、コイン投げや自動車事故など、同じ試行が何度も繰り返される時に初めて成功するまでの試行回数を分布したものがあります。

ちなみに、幾何分布(Geometric Distribution)の名前の由来は、以下で説明する確率変数f(x)が等比数列(幾何数列)の形をしているからと言われています。

2. 幾何分布の確率密度関数

幾何分布の確率密度関数は以下になります。

f(x)=pq^{x-1}
p:成功(発生)確率
q:失敗確率(q=1-p)
x: 1回成功するまでの試行回数(成功した時を含む)

上記は、成功Tが1回発生するまでに、x-1回失敗していることから導出できます。
なお、成功数をn回とした時の分布を負の二項分布と言います。負の二項分布については以下を参照して下さい。

【R言語と統計の備忘録】幾何分布のまとめ

確率分布のグラフは以下になります。p=0.1,0.2,0.4のグラフになります。

例題を解いてみましょう。

52枚のトランプからカードを1枚ずつ引いていく。4回目で初めてハートが出る確率を求めよ。

ここで、ハートを引く=成功となりますので、p=0.25, q=0.75となります。
また、4回目で成功する確率を求めるのでx=4となります。

f(4)=(1/4)\pdot (3/4)^{4-1}=0.105

以上から、約10.4%と求めることができました。

3. 幾何分布の期待値と分散(モーメント)

幾何分布の期待値と分散は以下になります。

E(x)=1/p
V(x)=q/p^2

幾何分布はモーメント(積率母関数)を用いて期待値と分散を導出します。

モーメント関数の定義および公式は以下になります。

M_x(t)=E(e^{tx})・・・モーメント母関数
E(\bf{X})=M_x' (0)
V(\bf{X})=M_x'' (0)-(M_x' (0))^2

幾何分布のモーメント母関数

まず、幾何分布のモーメント母関数を求めます。

M_x(t)=E(e^{tx})・・・期待値の公式:E(x)=\sum_xxf(x)のxにe^{tx}を代入
=\sum_x e^tx\pdot pq^{x-1}

=\dfrac{p}{q}\sum_x (qe^t)^x

ここで、無限級数の和の公式\sum_{x=0}^{\infty} ar^x=\dfrac{a}{1-r}より

=\dfrac{p}{q}\pdot \dfrac{qe^t}{1-qe^t}
=\dfrac{pe^t}{1-qe^t}

幾何分布のモーメント母関数の1回微分と期待値

幾何分布のモーメント母関数の1回微分は以下になります。

M_x' (t)=\dfrac{pe^t(1-qe^t)-pqe^{2t}}{(1-qe^t)^2}
=\dfrac{pe^t}{(1-qe^t)^2}・・・(\dfrac{f(x)}{g(x)})'=\dfrac{f'(x)g(x)-f(x)g'(x)}{(g'(x))^2}より

以上から、期待値は以下になります。

E(\bf{X})=M_x' (0)=p/p^2=1/p

幾何分布のモーメント母関数の2回微分と分散

同様に、2回微分は以下になります。

M_x' '(t)=\dfrac{pe^t(1-qe^t)^2+pe^t(2qe^t-2q^2e^{2t})}{(1-qe^t)^4}
=\dfrac{pe^t(1-q^2e^{2t})}{(1-qe^t)^4}

以上から、分散は以下になります。

V(\bf{X})=M_x' '(0)-(M_x'(0))^2
=\dfrac{p(1-q^2)}{(1-q)^4}-1/p^2
=\dfrac{(1-(1-p)^2-p)}{p^3}
=\dfrac{1-p}{p^2}

以上になります。

4. 幾何分布のRでの扱い方

xを指定した時の事象の発生確率(dgeom)

幾何分布をRで導出するにはdgeom関数を使用します。
使い方は以下になります。

dgeom(x, p)
x:初めて成功するまでに失敗した回数
p: 成功確率

xが"失敗した回数"であることに注意して下さい。
3回目に成功する確率が知りたいときはx=2を代入します。

例題を解いてみましょう。

52枚のトランプからカードを1枚ずつ引いていく。4回目で初めてハートが出る確率を求めよ。

ここで、p=0.25, x=3より以下になります。

> dgeom(3,0.25)
[1] 0.1054688

2章で手計算で計算した時と同じ結果を得ることができました。

成功回数がn以上(累積分布)となる確率(pgeom)

n個以上となる方法を求める場合はpgeom関数を使います。
パラメータの入れ方はdgeom関数と同じになります。

例題を解いてみましょう。

52枚のトランプからカードを1枚ずつ引いていく。3回目までにハートが出る確率を求めよ。

ここでもxは失敗した回数であることに注意して下さい。
p=0.25, x=2より以下になります。

> pgeom(2,0.25)
[1] 0.578125

別の言い方をすると、「ハートを引くまでカードを引くゲームをした時に、ハート以外を引く回数が2回以下である確率は0.578である」
これは、dgeomで1回目,2回目, 3回目に成功する3回の総和に等しいことを確認します。

> sum(dgeom(0:2, 0.25))
[1] 0.578125

以上になります。

確率qで、成功回数がx回以下となるxの値(分位関数)を求める方法(qgeom)

これはpgeom関数の逆関数になります。
別の言い方をすると、初めて成功するまでの失敗回数が、x回以下である確率がPを超える最小のxを返します。

使い方は以下になります。

qgeom(P, p)
P: 累積確率
p: 成功確率

例題で見てみましょう。

52枚のトランプからハートのカードを引き当てるゲームを行う。
挑戦者の50%以上がハートを引くには、最低何回カードを引くことにすれば良いか。

上記のqgeom関数にそのまま代入します。

> qgeom(0.5,0.25)
[1] 2

上記の結果は、50%以上の確率で2回までの失敗に収まる、という結果となるため、3回カードを引くことにすれば良いことが分かります。(2というのはあくまで失敗回数のため)

幾何分布の乱数の出力(rgeom)

幾何分布の乱数はrgeom関数で出力できます。
使い方は以下になります。

rgeom(n, p)
n:1回成功するまでに失敗する数
p: 成功確率

例題で見てみましょう。

52枚のトランプからハートのカードを引き当てるゲームを20回行なった時の、ハートを引くまでに引いたカードの枚数をシミュレーションせよ。

上記のrgeom関数にそのまま代入します。

> rgeom(20,0.25)+1
[1] 2 4 1 16 5 3 11 1 6 4 13 2 2 3 2 1 3 2 2 3

rgeomだけでは失敗した回数しか出ないので+1しています。
こう見ると、個人的には結構ばらつきが多いと感じますがみなさんはいかがでしょう。

Rによる二項分布の確率分布関数と累積確率分布関数のグラフの書き方

確率分布関数のグラフはdgeomを、累積分布関数のグラフはpgeomを使います。

#1/4で成功する事象を行った時に、成功するまでx回失敗する時の確率分布(x=20まで)
> x <- c(0:20)
> plot(x, dgeom(x, 0.25), type="l")

 

#1/4で成功する事象を行った時に、成功するのに失敗がx回以下である(累積)確率分布(x=20まで)
> x <- c(0:20)
> plot(x, pgeom(x, 0.25), type="l")

-R, 統計学(statistics), 解説記事

Copyright© 世のため自分のためのアウトプット , 2020 All Rights Reserved Powered by STINGER.