이항분포 예시.

6426 단어 datasciencebeginners
이 블로그에서는 이항 분포를 사용하는 몇 가지 예를 보여드리고자 합니다.
확률 질량 함수 공식을 적용하기 전에 이항 확률을 계산하는 고전적인 예부터 시작하여 이항 분포에 대한 더 나은 직관을 얻을 수 있습니다.

동전과 주사위


예 1



우리는 특정한 던지기에서 앞면이 나올 확률이 0.8인 동전을 넣었습니다. 동전을 3번 던집시다. 앞면이 2개 이상 나올 확률은 얼마입니까?

솔루션 1
a) 간단하게 하기 위해 뒷면과 앞면이 나올 확률이 0.5인 공정한 동전부터 시작하겠습니다.
2*2*2 = 세 번 던질 때 가능한 결과는 8가지입니다.
HHH, HHT, HTH, THH, TTT, TTH, THT, HTT 여기서 H와 T는 각각 헤드/테일입니다. 공정한 동전의 경우 각 결과는 0.5*0.5*0.5 = ⅛의 확률로 똑같이 가능합니다.
우리는 다음 조합에 관심이 있습니다: 앞면 2개와 앞면 3개, 이는 '최소한 앞면 2개'를 나타냅니다.
정확히 두 개의 헤드가 있는 결과 = (3*2*1)/(2*1) = 3 또는 HHT, HTH,THH.
세 번의 던지기가 모두 앞면일 때의 결과 = (3*2*1)/(3*2*1) = 1 또는 HHH.
따라서 8개 중 총 4개의 '관심 있는' 사례가 있습니다. 모든 시나리오가 동등하게 가능하기 때문에 적어도 2개의 앞면이 나올 확률은 P(X>=2) = 4 * (⅛) = 0.5입니다.
보시다시피 이것은 대칭 분포이므로 적어도 두 개의 꼬리를 얻는 것도 = 0.5입니다.

b) 이제 앞면이 나올 확률 = 0.8일 때 로드된 동전으로 같은 것을 다시 계산해 봅시다.
이제 4개의 '관심 있는' 시나리오: HHH, HHT, HTH 및 THH는 다음과 같은 확률을 갖습니다.
P(HHH) = 0.8*0.8*0.8=0.512,
P(앞면 2개 & 꼬리 1개) = 0.8*0.8*0.2 = 0.128
그리고 동전이 들어 있는 상태에서 적어도 두 번 앞면이 나올 확률은 다음과 같습니다.
P(X>=2) = 0.512+3*0.128 = 0.896

예 2



동전 대신 주사위를 사용하고 싶고 3번 굴렸을 때 적어도 16이 나올 확률을 계산하고 싶다면 어떨까요? 공정하거나 가중치가 있는 주사위일 수 있습니다.

솔루션 2
주사위가 공정하고 p=1/6이라고 가정하고 관심 있는 사례 계산부터 시작할 수 있습니다.
3개 롤 중 정확히 1개 6개: 3 * (1 * 5 * 5) * (⅙ * ⅙ * ⅙)
3개의 롤 중 정확히 2개의 6: 3 * (1* 1 * 5) * (⅙ * ⅙ * ⅙)
정확히 셋은 모두 6입니다: 1 * (1 * 1 * 1) * (⅙ * ⅙ * ⅙).
마지막으로 위의 모든 확률을 더합니다: P(X>=2) = 0.421.

확률 및 누적 질량 함수



보시다시피 모든 계산을 수동으로 수행하는 것은 매우 지루하고 실수로 이어질 수 있습니다. 따라서 위의 예와 동일한 이항 분포의 확률 질량 함수를 계산하는 공식을 사용할 수 있습니다.



우리를 위해 이항 확률 질량 함수를 계산하는 Python에서 빠른 코드를 실행해 봅시다.

def binom_pmf(n,k,p):
    # calculates PMF of Binomial distribution
    # n= number of trials
    # k = number of succeses
    # p = probability of success k

    pmf = (math.factorial(n)/(math.factorial(k)*math.factorial(n-k)))*(p**k)*(1-p)**(n-k)
    return pmf

def binom_cmf(lower, upper, n, p):
    # calculates CMF of Binomial distribution
    # lower = min number of successful trials
    # upper = max number of successful trials
    # n = number of trials
    # p = probability of success
    cmf = 0
    for k in range(lower,upper+1):
        cmf += binomial(n,k,p)
    return cmf



예 3



대학 공학부는 SOLVIT라는 새로운 소프트웨어 패키지를 도입했습니다. 비용을 절약하기 위해 대학의 구매 부서는 한 번에 4명의 학생만 SOLVIT을 사용할 수 있는 4 사용자 라이센스에 대해 저렴한 가격으로 협상했습니다. 이를 통해 학생의 90%가 필요할 때 패키지를 사용할 수 있을 것으로 추정됩니다. 총학생회는 공대생들이 SOLVIT을 사용하기 위해 과도하게 대기해야 한다는 보고를 받고 더 많은 라이센스 구매를 요청했습니다. 결과적으로 컴퓨터 센터는 소프트웨어 사용을 모니터링합니다. 조사 결과 평균 20명의 학생이 피크 시간에 로그인했으며 이 중 4명이 SOLVIT을 사용하기를 원했습니다. 구매 부서의 견적이 정확했습니까?
Source for this example

Python을 사용하여 P(X<=4) = 0.6296을 계산할 수 있습니다. 4명 이상의 학생이 소프트웨어를 사용할 확률이 37%라는 의미입니다. P(X>=5) = 1 - 0.6296 = 0.3704.

binom_cmf(0,4,20,0.2)


6개의 라이선스를 사용하는 경우 확률은 P(X<=6) = 0.9133으로 충분합니다.

binom_cmf(0,6,20,0.2)


결론



여기서 우리는 '성공'과 '실패'의 확률을 계산하기 위해 이항 분포를 적용했습니다. 다음 부분에서는 이항 검정을 위한 이항 PMF의 적용에 대해 논의할 수 있습니다.

좋은 웹페이지 즐겨찾기