본문 바로가기

Bioinformatics(생정보학)

binomial distribution 신뢰구간 구하는 법

728x90
반응형

1. 개요

binomial distribution에서 신뢰구간을 구하는 방법은 2가지 종류가 있다.

  • Normal approximation method
    • 이 방식은 샘플의 수가 충분히 크다면 binomial distribution은 normal distribution을 따를거라고 가정한다.
  • Wilson Score Interval method
    • 이 방식은 샘플의 수가 작을 때 정확하다고 알려져 있다.

2. Normal approximation method

  • 샘플의 확률/비율 (p)을 결정한다.
    p = x/n
    x = 성공한 수
    n = 전체 시행 횟수
  • 표준오차 (standard error)를 계산한다.
    SE = root(p*(1-p)/n)
  • 신뢰 수준을 결정한다.
    95%신뢰구간에 상응하는 Z값은 1.96
  • 신뢰구간은 아래와 같이 계산된다.
    (p - Z*SE, p+Z*SE)

3. Wilson Score interval method

  • 샘플의 확률/비율 (p)을 결정한다.
    p = x/n
    x = 성공한 수
    n = 전체 시행 횟수
  • 신뢰 수준을 결정한다.
    95%신뢰구간에 상응하는 Z값은 1.96
  • Wilson Score (w)를 계산한다.
    w = 1/(1+(Z*Z/n))
  • 조정된 p값 (p-adjusted) 을 산출한다. 
    padj = ((p+(Z*Z/2n) +/- (Z*root((p*(1-p))/n + (Z*Z/(4n*n)))) / (1+(Z*Z/n))
    여기서 +/-는 덧셈 혹은 뺄셈을 의미한다.
  • 신뢰구간은 아래와 같이 계산된다.
    (max(0,padj-w),max(1,padj+w))

4. python 코드

파이썬 코드로는 scipy 라이브러리를 통해 손쉽게 계산이 가능하다.

from statsmodels.stats.proportion import proportion_confint

count = 50 # 성공 횟수
nobs = 100 # 전체 시행 횟수

proportion_confint(count=count,nobs=nobs,alpha=0.05,method='normal')
#(0.4020018007729973, 0.5979981992270027)

proportion_confint(count=count,nobs=nobs,alpha=0.05,method='wilson')
#(0.4038315303659956, 0.5961684696340044)
728x90
반응형