티스토리 뷰

이항분포란?

이항분포는 Binomial Distribution을 한자어(二項分布)로 번역한 말입니다.

 

이산수학(離散數學)의 이자는 '떠날 이' 입니다.(https://hanja.dict.naver.com/search?query=%E9%9B%A2). 

 

이항분포에서는 두이(二)자를 씁니다. 영어로는 Binomial(바이노미얼) 입니다. 바이너리 서치(Binary Search), 이진법(Binary) 등에서 쓰는 '두 이'자입니다. 이진법은 0과 1두가지로만 수를 표현하는 진법이고 '바이너리서치'를 번역하면 '이진탐색'으로 탐색 범위를 1/2씩 줄여가면서 탐색하는 방법입니다.

 

이항분포는 어떤 사건이 일어나거나 안일어나거나 두가지중에 하나의 경우에 사용합니다. 동전던지기 같은 경우는 앞면이 나오거나 뒷면이 나오거나이고 확률은 반반이니 각각 0.5입니다. 그래서 그래프는 위와 같이 표현 됩니다.

 

이런 시행을 베르누이 시행이라고 합니다.

확률이 반반인 것만 이항분포가 되는 것이 아닙니다. 날씨의 경우 비가 오거나 안오는 경우 이렇게 두가지를 가지고 이야기를 할 때 비가 올 확률은 70%이면 안올 확률은 30%입니다.

위 그래프 같은 경우는 확률이 50%인 경우, 70%인 경우 두가지를 가지고 표현을 했는데 초록색 선과 빨간색 선만 비교를 해보면 빨간색 선은 확률이 50%인 경우이고 초록색 선은 확률이 70%인 경우입니다. 그래서 초록색 그래프가 빨간색 그래프에 비해 한쪽으로 치우쳐 있습니다.

그래서 이항분포는 식으로 표현 할 때 B(n, p)이렇게 표현을 하는데 p가 확률이고 n은 시도 횟수입니다.

동전던지기를 40번 한다고 했을때 식으로 표현을 하면 B(40, 0.5)이렇게 표현을 할 수 있습니다. 그리고 50일 동안 위에서 말한 비가 올 확률 70%를 표현을 한다고 하면 B(50, 0.7)이런식으로 표현을 할 수 있습니다.

이항 분포를 식으로 표현하기

이항분포를 식으로 표현하면 아래와 같습니다.
p(x) = nCx * p^x(1-p)^n-x

p는 확률이다. x는 n번중에 몇번이 발생을 했는가입니다. 동전던지기를 예를 들면 동전을 10번 던졌는데 앞면이 6번나왔다고 하면 x는 6입니다.

그래서 p(6)은 동전을 던졌을 때 앞면이 6번 나올 확률입니다.

이항 분포를 파이썬 함수로 표현하기

def po(x, n, p):
    t_x = x
    t_n = n
    a = 1
    b = 1
    while t_x > 0:
        a = a * t_n
        b = b * t_x
        t_x -= 1
        t_n -= 1

    return a / b * p * pow(p, x) * (1 - p) * pow(p, n-x)

위 식을 함수로 표현하면 위와 같습니다.

동전던지기 10번에서 앞면이 6번 나올 확률을 구해보면 아래와 같습니다.

print(po(6, 10, 0.5))

결과
0.05126953125

combination을 구하는 함수를 import해서 쓰면 좀 더 간단합니다.

from math import comb

def po(x, n, p):
    return comb(n,x) * p * pow(p, x) * (1 - p) * pow(p, n-x)

print(po(6, 10, 0.5))
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함