【離散確率分布】ベルヌーイ分布と二項分布を説明する

確率分布
あい
あい

今回は
ベルヌーイ分布
二項分布
に関して紹介します

[PR]※本サイトにはプロモーションが含まれています

ベルヌーイ分布

ベルヌーイ分布とは、

離散確率分布の一種であり

成功(成功確率 p)と失敗(失敗確率 1−p

の二つの結果しか持たない試行の確率分布です

あい
あい

結果が2パターン
しか
ないのか~!

\(P(X=K)=P^k(1-P)^{1-k}\)
k:0 もしくは1
P:1回の試行でK = 0か1の結果が出る確率

期待値と分散は

\(E[X] = μ = p \)
\(V[x] = E[x] – μ^2 = p(1-p)\)

サイコロを利用したベルヌーイ試行の結果の確率分布

サイコロを投げて

偶数が出た場合を成功

奇数が出た場合を失敗とすると

失敗か成功かしか結果がないので

この試行はベルヌーイ試行です

ベルヌーイ試行
の結果を

0(失敗)と1(成功)とし

成功確率をPとすると

\(P(X=1)=\frac{1}{2}\)

\(P(X=0)=\frac{1}{2}\)

確率分布は

あい
あい

成功か失敗か
単純な
離散確率分布
なんだね~

Pythonを使ってベルヌーイ分布の確率密度関数の値を出力するコードを実装

例題2

ある実験を繰り返し10回行った所8回成功し2回失敗した
成功=1失敗=0とし
表にまとめるとこのようになった。
[0,0,1,1,1,1,1,1,1,1]
\(P(x=0)\),\(P(x=1)\)を求めよ

import numpy as np
import matplotlib.pyplot as plt

# ベルヌーイ分布
# fail:0,sucsess:1
prob_data = np.array([])
data = np.array([0,0,1,1,1,1,1,1,1,1])

for i in np.unique(data):
  P = len(data[data==i])/len(data)
  print(i,"が出る確率",P)
  prob_data = np.append(prob_data,P)
  print(prob_data)
  plt.bar([0,1],prob_data,align = 'center')
  plt.xticks([0,1],['fail','sucsess'])
  plt.grid(True)

二項分布

成功確率を p

失敗確率を 1−p とすると

n回 のベルヌーイ試行を行った際に


n 回の試行のうち特定の x 回で成功し


残りの nx 回失敗する

この確率を計算し

全ての確率変数の確率を

棒グラフに分布化したものが

二項分布です。

\(P(X=x)=nC_x・P^x・(1-P)^{n-x}\)

期待値
\(E[X]=np\)
分散
\(V[X]=np(1-P)\)

あい
あい

二項分布は
ベルヌーイ分布を
複数回やって
何回成功するか

失敗するかの
確率を表す
分布なんだね!

【例題3】コイン投げ

例題3

コインを10回投げたとき3回表が出る確率を
二項分布を利用して求めよ

コインを10回投げたとき3回表が出る事象の数

\(10C_3\)より

\(=120\)

あい
あい

10回コインを投げて
7回裏、3回表が

出る組み合わせは
120通りあるんだね!

表が出る回数は3回
\(x=3\)

表が出る確率Pは
\(\displaystyle P=\frac{1}{2}\)

二項分布の公式より

10回中3回コインが表が出る確率は
\(\displaystyle P(X=3)=10C_3・(\frac {1}{2})^3・(\frac {1}{2})^7\)
\(=0.117\)

Pythonで二項分布の実験をしてみる

例題4

コインを10回投げて
表が出る回数Xを確率変数とし
確率変数Xを0~10まで全ての
確率を求めて棒グラフを作成し

確率分布を作成せよ

from scipy.stats import binom
import matplotlib.pyplot as plt
import numpy as np

# パラメータの設定
p = 0.5  # 成功確率
n = 10   # 試行回数

# 二項分布
x = np.arange(0, n+1)
pmf = binom.pmf(x, n, p)

# 結果の表示
print(f'試行回数: {n}, 成功確率: {p}')
print(f'確率密度関数 (PMF): {pmf}')


# グラフの描画
plt.bar(x, pmf, align='center', alpha=0.5)
plt.plot(x, pmf, marker='o', linestyle='-', color='blue', label='PMF Line')
plt.title('Binomial Distribution PMF')
plt.xlabel('X')
plt.ylabel('Density')
plt.xticks(x, x)
plt.show()
print('確率密度関数の総和',sum(pmf))

出力結果の値は

事象確率密度関数
表が一回も出ない\(P(X=0)\)0.00097656
表が1回出る\(P(X=1)\)0.00976563
表が2回出る\(P(X=2)\)0.04394531
表が3回出る\(P(X=3)\)0.1171875
表が4回出る\(P(X=4)\)0.20507812
表が5回出る\(P(X=5)\)0.24609375
表が6回出る\(P(X=6)\)0.20507812
表が7回出る\(P(X=7)\)0.1171875
表が8回出る\(P(X=8)\)0.04394531
表が9回出る\(P(X=9)\)0.00976563
表が10回出る\(P(X=10)\)0.00097656

グラフの出力結果は

あい
あい

確率が50%なので
確率的に10回コインを振った時
5回表が出る確率が
一番高いんですね!
この実験で
一番期待できる値は5です


タイトルとURLをコピーしました