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

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

R 統計学(statistics) 解説記事

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

更新日:

離散型の確率分布である二項分布の概要や使い方についてまとめました。

~目次~

1. ベルヌーイ試行と二項分布の概要

2. 二項分布の確率分布関数

3. 二項分布の期待値と分散の導出

4. 二項分布の期待値と分散の導出(モーメント)

5. 二項分布のRでの使用方法

1. ベルヌーイ試行と二項分布の概要

ベルヌーイ試行とは、成功と失敗やコインの表裏のような二つの結果をもたらす試行をn回繰り返す試行をいいます。
この試行は独立(各試行が他の試行に影響を与えない)かつ、同じ条件である必要があります。

二項分布とは、このベルヌーイ試行の確率分布のことを言い、Bi(n, p)で表します。
ここで、nは試行回数、pは成功確率を示します。

2. 二項分布の確率分布関数

二項分布の確率分布関数は以下の式で表されます。

f(x)={}_nC_xp^x(1-p)^{n-x}

上記の式はpがx回成功する確率(p^x)、pがn-x回失敗する確率((1-p)^{n-x}、成功がn回の試行のどのx回で発生するか({}_nC_x)の積で計算されています。

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

52枚のトランプから5枚を引いて、ハートが2枚ある確率

ハートがトランプに占める割合pは4分の1(0.25)となりますので、計算は以下になります。

f(x)={}_5C_2(0.25)^2(1-0.25)^{5-2}=0.2636

f(x)が確率分布関数であることの証明

f(x)が確率分布であるには、f(x)の総和が1であることを証明する必要があります。
これは二項定理の逆のそのままのため、簡単に証明できます。

\sum_{x=0}^n{}_nC_xp^x(1-p)^{n-x}=(p+(1-p))^n=1・・・(1)

(参考)二項定理は以下になります。

(a+b)^n=\sum_{x=0}^n{}_nC_xa^xb^{n-x}

3. 二項分布の期待値と分散の導出

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

E(\bf{X})=np
V(\bf{X})=np(1-p)

それぞれの計算方法は以下になります。

二項分布の期待値の導出

上記の確率分布関数から期待値を求めます。

E(\bf{X})=\sum_{x=0}^nxf(x)・・・期待値の公式より
=\sum_{x=0}^n\dfrac{x\pdot n!}{x!(n-x)!}p^x(1-p)^{n-x}
・・・分子のxで分母のx!を払い、p^x, n!のpとnを\sumの外に出します
=np\sum_{x=0}^n\dfrac{(n-1)!}{(x-1)!(n-x)!}p^{x-1}(1-p)^{n-x}
・・・Cの分解式より{}_{a+b}C_{b}=\dfrac{(a+b)!}{a!b!}
=np\sum_{x=0}^n{}_{n-1}C_{x-1}p^{x-1}(1-p)^{n-x}
=np\sum_{x=0}^nf(x-1)
・・・(1)式より\sum_{x=0}^nf(x-1)=1
=np

n回コインを投げた時の成功回数の期待値はnpというのは直感とも合うかと思います。

二項分布の分散の導出

期待値と同様に求めます。

以下の公式を使います。

V(\bf{X})=E(\bf{X}^2)-E(\bf{X})^2

上式の右辺を求めます。

E(\bf{X}^2)=\sum_{x=0}^nx^2f(x)
=np\sum_{x=0}^n\dfrac{x\pdot (n-1)!}{(x-1)!(n-x)!}p^{x-1}(1-p)^{n-x}
・・・x=0の時\dfrac{x\pdot (n-1)!}{(x-1)!(n-x)!}p^{x-1}(1-p)^{n-x}=0より
=np\sum_{x=1}^n\dfrac{x\pdot (n-1)!}{(x-1)!(n-x)!}p^{x-1}(1-p)^{n-x}
・・・x=y+1とします
=np\sum_{y=0}^n\dfrac{(y+1)\pdot (n-1)!}{y!(n-1-y)!}p^{y}(1-p)^{n-y-1}
=np(\sum_{y=0}^n\dfrac{y\pdot (n-1)!}{y!(n-1-y)!}p^{y}(1-p)^{n-y-1}+\sum_{y=0}^n\dfrac{\pdot (n-1)!}{y!(n-1-y)!}p^{y}(1-p)^{n-1-y})

和の左側と右側を分けて計算します。

np\sum_{y=0}^n\dfrac{y\pdot (n-1)!}{y!(n-1-y)!}p^{y}(1-p)^{n-1-y}
・・・分子のyでy!の次数を一つ下げ、pと(n-1)を外に出します。
=np*(n-1)p\sum_{y=0}^n\dfrac{(n-2)!}{(y-1)!(n-1-y)!}p^{y-1}(1-p)^{n-1-y}
=np(np-p)\sum_{y=0}^nf(y-1)
=np(np-p)

続いて右側を計算します。

np\sum_{y=0}^n\dfrac{\pdot (n-1)!}{y!(n-1-y)!}p^{y}(1-p)^{n-1-y})
=np\sum_{y=0}^n{}_{n-1}C_{y}p^{y}(1-p)^{n-1-y})[
=np

以上から、V(\bf{X})の左項は以下になります。

E(\bf{X}^2)=np(1+np-p)

また、V(\bf{X})の右項は以下になります。

E(\bf{X})^2=(np)^2

以上から、

V(\bf{X})=E(\bf{X}^2)-E(\bf{X})^2
=np(1+np-p)-(np)^2
=np(1-p)

4. 二項分布の導出(モーメント)

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

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

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})
・・・3章と同様に、E(\bf{X})=\sum_{x=0}^nxf(x)より
=\sum_{x}e^{tx}\pdot {}_nC_xp^x(1-p)^{n-x}
=\sum_{x}{}_nC_x(pe^t)^x(1-p)^{n-x}
・・・二項定理から(詳細は2章参考)
=(pe^t+(1-p))^n

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

1-p=qと置くと、モーメント母関数の1回微分は以下になります。

M_x' (t)=npe^{t}(pe^t+q)^{n-1}{
・・・\dfrac{d}{dx}(f(x)+a)^n=\dfrac{df(x)}{dx}(f(x)+a)^{n-1}より

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

E(\bf{X})=M_x' (0)=np(p+(1-p))^{n-1}=np{

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

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

M_x' '(t)=np\{(n-1)pe^{2t}(pe^t+q)^{n-2}+e^t(pe^t+q)^{n-1}{

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

V(\bf{X})=M_x'' (0)-(M_x' (0))^2
=np\{(n-1)p(p+q)^{n-2}+(p+q)^{n-1}\}-(np)^2=np(1-p)

5. 二項分布のRでの使用方法

成功回数がnとなる確率(dbinom)

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

dbinom(x, n, p)
x: 成功回数
n: 試行回数
p: 成功回数

2章の例題を解いてみます。

[再掲] 52枚のトランプから5枚を引いて、ハートが2枚ある確率

ハートがトランプに占める割合pは4分の1(0.25)となりますので、以下になります。

> x <- 2
> n <- 5
> p <- 0.25
> dbinom(x,n,p)
[1] 0.2636719

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

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

ただし、pbinom関数はn回以下となる確率なので注意しましょう。

以下の例題を解いてみます。

52枚のトランプから7枚を引いて、ハートが4枚以上ある確率

4枚以上の確率は、ハートが3枚以下である確率を引いて(余事象)求めます。

> x <- 3
> n <- 7
> p <- 0.25
> 1-pbinom(x,n,p)
[1] 0.07055664

以上から、約7%となることが分かりました。

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

これはpbinom関数の逆関数になります。
別の言い方をすると、成功回数が0回からx回までの累積確率がqを超えない最大のxを返します。

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

qbinom(q, n, p)
q: 成功回数がx回以下となる確率
n: 試行回数
p: 成功回数

具体例を見てみましょう。

7枚のトランプを引くと、ハートがx枚以下である確率は50%を超える。この時の最小のxを求めよ。

計算してみましょう。

> q <- 0.5
> n <- 3
> n <- 7
> p <- 0.25
> qbinom(q,n,p)
[1] 2

つまり、7枚トランプを引いた時に、ハートの枚数が0-2枚である確率は、50%以上であり、0-1枚である確率は50%以下ということです。
pbinom関数を使って確認してみます。

> pbinom(2,n,p) #ハートがが0-2枚である確率
[1] 0.7564087
> pbinom(1,n,p)#ハートがが0-1枚である確率
[1] 0.4449463

以上です。

二項分布の乱数の出力(rbinom)

二項分布の乱数はrbinom関数で出力できます。
使い方は以下になります。

rbinom(N, n, p)
N: 出力する乱数の個数
n: 試行回数
p: 成功確率

例えば、7枚カードを引いた時のハートの枚数を数える試行を、15回行います。

> N <- 15
> n <- 7
> p <- 0.25
> rbinom(N,n,p)
[1] 1 1 3 1 1 3 0 2 0 2 1 2 1 4 3

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

上記で使用したdbinom関数と、pbinom関数を使用します。

トランプをn回引いた時に、ハートの枚数をx軸に、x枚である確率をy軸にプロットします(確率密度関数)。

> x <- 0:7
> n <- 7
> p <- 0.25
> plot(x, dbinom(x,n,p))
> plot(x, dbinom(x,n,p), type="l")

同様に、x枚以下である確率をy軸にプロットします(累積確率密度関数)。

> plot(x, pbinom(x,n,p), type="l")

 

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

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