기초통계 (16) 이항분포

생각하는 마리오네트·2021년 10월 2일
0

통계

목록 보기
22/41

📈 용어 정리

  • 시행(trial) : 독립된 결과를 가져오는 하나의 사건(예 : 동전던지기)
  • 이항식(binomial) : 두 가지 결과를 갖는다.
  • 이항시행(binomial trial) : 두 가지 결과를 가져오는 시행
  • 이항분포(binomial distribution) : n번 시행에서 성공한 횟수에 대한 분포

📈 이항분포란

  • 이항식(예/아니오)의 결론은 구매 혹은 구매하지 않음, 클릭 혹은 클릭하지 않음, 생존 혹은 사망 등과 같이 의사결정에 있어서 중요한 역할을 하므로, 분석에서 핵심이라고 할 수 있다.

  • 이항분포의 핵심은 시행(trial)에 있는데, 각각의 시행은 정해진 확률로 두 가지 결과를 갖는다.

  • 예를들어 동전던지기를 10번을 시행(trial)하는 것은 2가지 결과(앞면 혹은 뒷면)를 갖는 시행을 10번하는 이항실험이다. 이를 이진 결과라고 하며, 반드시 50대 50의 확률을 요하지는 않는다.

  • 이항분포란 각 시행마다 그 성공확률(P)이 정해져 있을때, 주어진 시행 횟수(n)중에서 성공한 횟수(X)의 도수분포를 의미한다.

  • 이항분포로 답하고자 하는 질문은 다음과 같은것이다. " 한 번의 클릭이 판매로 이어질 확률이 0.02일때, 200회 클릭으로 0회 매출을 관찰할 확률을 얼마인가?? "

# 한번의 클릭이 판매로 이어질 확률이 0.02일 때, 200회 클릭으로 0회 매출을 관찰할 확률은 얼마인가?

# 이항 확률분포
from scipy.stats import binom
binom.pmf(k =0, n = 200, p = 0.02)

>>>
0.017587946605721567
  • k는 전체시행 가운데 성공횟수, n은 전체 시행횟수, p는 독립시행의 성공확률

  • 이항분포의 평균은 n X p이다. 분산은 n X p(1-p)이다.

  • 시행횟수가 충분할 경우(특히 p가 0.50에 가까울때) 이항분포는 사실상 정규분포와 구별이 어렵다. 실제로 표본크기가 커질수록 이항확률을 구하기 위해서는 많은 계산이 필요하다 보니, 대부분의 통계 절차에서는 평균과 분산으로 근사화한 정규분포를 사용한다.

  • n이 크고 p가 0 또는 1에 너무 가깝지 않은 경우, 이항분포는 정규분포로 근사할 수 있다.

# 예시2

# 이항 확률 분포 : n번을 실행했을때 결과가 x번 일어나는 확률을 찾을때 사용 
from scipy.stats import binom
binom.pmf(k = 2, n = 5, p = 0.1)
# k는 전체시행가운데 성공횟수, n은 전체 시행횟수, p는 독립시행의 성공확률

>>>
0.0729
# 이항확률분포 그래프
from scipy.stats import binom 
import matplotlib.pyplot as plt
import numpy as np

fig, ax =  plt.subplots(1, 1)
n = 100 # 총 시도횟수
p = 0.5 # 각 독립사건 성공확률
x = np.arange(binom.ppf(0.01, n,p), binom.ppf(0.99, n, p))
ax.plot(x, binom.pmf(x, n, p),'bo', ms=8, label = 'binom pmf')
ax.vlines(x, 0, binom.pmf(x, n, p), colors='b', lw =5, alpha =0.5)

📈 이항확률분포 와 이항누적확률분포 예제

(누적확률 분포는 특정값보다 같거나 작을확률을 뜻한다.)

H지역 코로나 감염 비율이 10%라고 한다.

1) 10명을 임의 추출하여 코로나 확진여부를 진단했을 때 3명이 확진 될 확률을 계산하시오.

2) 많아야 1명이 감염자일 확률을 구하시오.(1명보다 작거나 같음 = 누적확률분포)

3) 적어도 1명 이상이 감염자일 확률을 구하시오.

# 1) 정답
from scipy.stats import binom
print('1번 :',binom.pmf(3, 10, 0.1))
# 2) 정답
print('2번 :',binom.cdf(1, 10, 0.1))
# 3) 정답
print('3번 :',1-binom.cdf(0, 10, 0.1))

>>>
1: 0.05739562800000007
2: 0.7360989291000002
3: 0.6513215599
profile
문제를해결하는도구로서의"데이터"

0개의 댓글