Python에서 이항 분포를 사용하는 방법


이항 분포는 통계학에서 가장 일반적으로 사용되는 분포 중 하나입니다. n 번의 이항 실험에서 k번 성공할 확률을 설명합니다.

확률 변수 X가 이항 분포를 따르는 경우 X = k 성공 확률은 다음 공식으로 찾을 수 있습니다.

P(X=k) = n C k * p k * (1-p) nk

금:

  • n: 시행 횟수
  • k: 성공 횟수
  • p: 주어진 시행의 성공 확률
  • n C k : n 번 시행에서 k번 성공하는 방법의 수

이 튜토리얼에서는 Python에서 이항 분포를 사용하는 방법을 설명합니다.

이항 분포를 생성하는 방법

numpy 라이브러리의 Random.binomial 함수를 사용하여 이항 분포를 따르는 값 배열을 생성할 수 있습니다.

 from numpy import random

#generate an array of 10 values that follows a binomial distribution
random.binomial(n=10, p=.25, size=10)

array([5, 2, 1, 3, 3, 3, 2, 2, 1, 4])

결과 표의 각 숫자는 주어진 시행의 성공 확률이 0.2510번의 시행 과정에서 발생한 “성공” 횟수를 나타냅니다.

이항 분포를 사용하여 확률을 계산하는 방법

scipy 라이브러리의 binom 함수를 사용하여 이항 확률에 대한 질문에 답할 수도 있습니다.

질문 1: Nathan은 자유투 시도의 60%를 성공시켰습니다. 만약 그가 12번의 자유투를 성공했다면, 그가 정확히 10번의 자유투를 성공할 확률은 얼마입니까?

 from scipy.stats import binom

#calculate binomial probability
binom.pmf(k= 10 , n= 12 , p= 0.6 )

0.0639

Nathan이 정확히 10번의 자유투를 성공할 확률은 0.0639 입니다.

질문 2: 마티는 공정한 동전을 5번 던졌습니다. 동전이 앞면이 2번 이하로 나올 확률은 얼마입니까?

 from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 2 , n= 5 , p= 0.5 )

0.5

동전이 앞면이 2번 이하로 나올 확률은 0.5 입니다.

질문 3: 우리는 개인의 70%가 특정 법률을 지지한다는 것을 알고 있습니다. 10명을 무작위로 선택한다면 그 중 4~6명이 법을 지지할 확률은 얼마입니까?

 from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 6 , n= 10 , p= 0.7 ) - binom.cdf(k= 3 , n= 10 , p= 0.7 )

0.3398

무작위로 선택된 4~6명의 개인이 이 법칙을 지지할 확률은 0.3398 입니다.

이항 분포를 시각화하는 방법

seabornmatplotlib 라이브러리를 사용하여 Python에서 이항 분포를 시각화할 수 있습니다.

 from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

x = random.binomial(n= 10 , p= 0.5 , size= 1000 )

sns.distplot(x, hist= True , kde= False )

plt.show()

Python의 이항 분포 플롯

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다