#title 이항분포-BINOMDIST
[[TableOfContents]]

==== 베르누이의 시행 ====
 * 양품/불량품, 남/녀, 동전 던지기(앞/뒤), 주사위 던지기(짝/홀) 등
 * 전제조건
  * 실험이 n번 동일한 시행으로 구성된다. 
  * 각 시행은 두 가지 가능한 결과 중 한 가지만 나타난다.
  * 각 결과의 확률은 시행의 횟수에 관계없이 일정하다.
  * 한 시행의 결과는 다른 시행의 결과에 영향을 주지 않는다. 즉, 각 시행은 서로 독립적이다. 

==== 이항분포 ====
확률변수 X의 분포가 이항 분포를 따를 경우 X ~ Binomial(n,p)로 표기하며, 그 확률질량함수(PMF) 식은 다음과 같다. 

attachment:이항분포-BINOMDIST/binormdist01.jpg
{{{n: 베르누이 시행의 반복횟수}}}
{{{p: 각 시행에서 성공할 확률(0 < p < 1)}}}
{{{x: n번 시행중 성공의 횟수}}}

 * 베르누이 시행의 전제하에 p와 (1-p)가 각각 어떤 시행에서의 성공과 실패의 확률이라고 하면, n번의 독립적 시행에서 x번 성공할 확률분포
 * BINOMDIST(x,n,p,c)사용
  * x: 성공횟수
  * n: 시행횟수
  * p: 매번 시행할 때마다의 성공확률
  * c: 1 or 0(True or False)
 * 예제
  * BINOMDIST(6, 10, 0.5, FALSE): 성공확률이 0.5인 시행에서 10번 시행에 6번 성공할 확률은? 0.205078125
  * BINOMDIST(6, 10, 0.5, TRUE): 성공확률이 0.5인 시행에서 10번 시행했을 때에 6회 이하로 성공할 확률은? 0.828125
 * 평균 = 시행횟수 * 매번 시행할 때마다의 성공확률 = 기대값
 * 분산 = 시행횟수 * 매번 시행할 때마다의 성공확률 * (1-매번 시행할 때마다의 성공확률)


==== 그래프를 통한 이항분포의 이해 ====
attachment:이항분포-BINOMDIST/binomdist01.jpg
attachment:이항분포-BINOMDIST/BINOMDIST.xlsx

매회 독립 시행의 확률은 0.5이다. 즉, 50%의 확률로 성공 또는 실패한다는 것이다. P(n=10)의 그래프를 보자. 그럼 가장 뽀족한 부분에 대항되는 x축의 값이 평균이다. P(n=10)의 경우 5 근처에 데이터가 몰려있다. P(n=50)의 경우는 평균인 25 근처에 데이터가 가장 많이 발생한 것을 볼 수 있다. 또한 이 그림은 n이 커질수록 정규분포에 근사한다는 것을 보여주고 있다. 

==== 예제:불량율이 0.1인 주조공정에서 15개의 제품을 추출했을 때, 불량품이 10개 이상일 확률 ====
'''불량율이 0.1인 주조공정에서 15개의 제품을 추출했을 때, 불량품이 10개 이상일 확률은? 1.8662E-07'''
 * 다음의 합
  * = BINOMDIST(10, 15, 0.1, FALSE)
  * = BINOMDIST(11, 15, 0.1, FALSE)
  * = BINOMDIST(12, 15, 0.1, FALSE)
  * = BINOMDIST(13, 15, 0.1, FALSE)
  * = BINOMDIST(14, 15, 0.1, FALSE)
  * = BINOMDIST(15, 15, 0.1, FALSE)
 * = BINOMDIST(5,15,0.9,TRUE)
 * = 1-BINOMDIST(9,15, 0.1, TRUE)

'''주사위를 두 번 던져 모두 1이 나올 확률은? 0.027777778'''
 * 주사위를 1회 던져 1이 나올 확률 = BINOMDIST(1, 2, 1/6, FALSE) = 0.277777778
 * 주사위를 2회 던져 모두 1이 나올 확률 = BINOMDIST(2, 2, 1/6, FALSE) =0.027777778

'''A전염병에 걸려 회복될 수 있는 확률이 0.4일 때, 15명이 병에 걸린 경우'''
 * 적어도 10명이 회복될 확률(10명 이상 회복할 확률)은 다음의 합: 0.033833303
  * = BINOMDIST(10, 15, 0.4, FALSE)
  * = BINOMDIST(11, 15, 0.4, FALSE)
  * = BINOMDIST(12, 15, 0.4, FALSE)
  * = BINOMDIST(13, 15, 0.4, FALSE)
  * = BINOMDIST(14, 15, 0.4, FALSE)
  * = BINOMDIST(15, 15, 0.4, FALSE)
 * 3명 ~ 8명 회복될 확률은 다음의 합: 0.877838591
  * = BINOMDIST(3, 15, 0.4, FALSE)
  * = BINOMDIST(4, 15, 0.4, FALSE)
  * = BINOMDIST(5, 15, 0.4, FALSE)
  * = BINOMDIST(6, 15, 0.4, FALSE)
  * = BINOMDIST(7, 15, 0.4, FALSE)
  * = BINOMDIST(8, 15, 0.4, FALSE)

==== 예제:음성 패킷 손실율 1%에서 동시에 전송할 패킷수를 결정(시뮬레이션) ====
-- 문제 출처: 확률론, Albert Leon-Garcia 지음, 김순자, 최상방, 홍광석 옮김, 피어슨 에듀케이션
패킷 음성 전송 시스템이 있다. A도시에서 B도시로 48개의 통화를 동시에 전송할 수 있는 시스템이 있다. 하지만, 음성 패킷은 약 1/3수준으로 나머지는 무음 패킷이다. 48개의 패킷을 동시에 전송하는 것은 비효율적이다. 음성 패킷 손실율 1%(통화가 불쾌하지 않을 수준이라 가정)에서 동시에 전송할 패킷수를 결정해 보자.

음성 패킷인지 무음 패킷인지는 이항분포다. 램덤으로 이항분포를 만들어 보자.
{{{
#이항분포
set.seed(48)
packets <- c()
for(i in 1:1000){
  packets <- c(packets, sum(rbinom(48, 1, 0.333)))
}
summary(packets)
}}}

시뮬레이션 해보자.
{{{
#시뮬레이션: 음성 패킷 손신율 1%에서 동시에 보낼 수 있는 패킷수는?
#손실율: (음성패킷수 - 동시보낼패킷수) > 0
n <- length(y)
prop <- c()
x <- 1:48
for(concurrent in x){
  prop <- c(prop, sum(packets > concurrent)/n)
}

plot(x, prop)
abline(h=0.01)
cutting_point <- min(which(prop < 0.01))
abline(v=cutting_point)
text(cutting_point + 1, 0.05, cutting_point)
text(1, 0.05, 0.1)
}}}
attachment:이항분포-BINOMDIST/1.png
--참고: set.seed(48)을 주석처리 후 프로그램을 계속돌려보니 거의 24이며, 23, 25도 가끔씩 나왔다. 

==== 예제:10개의 공 ====
항아리에 공이 10개가 있다.
 * 빨간공: 4개
 * 하얀공: 6개

'''10번 공을 꺼냈을 때(복원 추출) 빨간공 3개를 꺼낼 확률'''
{{{
dbinom(3, 10, 0.4)
}}}

결과
{{{
> dbinom(3, 10, 0.4)
[1] 0.2149908
}}}

'''10번 공을 꺼냈을 때(복원 추출) 적어도 1개 빨간공을 꺼낼 확률 --> 1 - 빨간공을 0개 꺼낼 확률'''
{{{
1-dbinom(0, 10, 0.4)
}}}

결과
{{{
> 1-dbinom(0, 10, 0.4)
[1] 0.9939534
}}}

'''10번 공을 꺼냈을 때(복원 추출) 빨간 공을 2개 이하로 꺼낼 확률'''
{{{
pbinom(2, 10, 0.4)
}}}

결과
{{{
> pbinom(2, 10, 0.4)
[1] 0.1672898
}}}