#### 1. binomial distribution ####
# 이항분포 : 독립적인 확률을 가진 상태에서, 여러번 던진 경우 앞면이 나오는 확률
# 동전 10번 던져서 3번 앞면이 나올 확률
# - dbinom(성공 횟수, 전체횟수, 각 확률)

dbinom(3, 10, 0.5)
# 4번
dbinom(4, 10, 0.5)
# 5번 째에 peak
dbinom(5, 10, 0.5)
# 6번 부터 다시 작아짐
dbinom(4, 10, 0.5)

#### 2. hypergeometric distribution ####
# populartion size가 있고 -> 추출한 sample size가 따로 있다.
# 10개 공 중의 3개는 빨간색공 / 7개는 흰색공 일 때,
# 추첨을 해서 5개를 뽑았을 때, 빨간공이 2개일 확률
# ex> 한 반에 남자70% 여자30% 총 20명 -> 10명 선발시 남자가 3명일 확률
# - dhypter(남자의 확률, populartion에서 남자의 size, population size에서 여자의 size, 추출한 sample size)

#이항분포( 10번을 뽑아서 3명이 남자일 확률 )
# - dbinom(3명이 남자일 확률, 10명을 뽑았을 때, 각 뽑힐 확률은 0.4)
dbinom(3,10,   0.4)

#**** 초기하 분포 (남+여 10명 중에 남자가 4명 여자가 6명 있다, 여기서 10명을 뽑았을 때, 남자가 3명일 확률은?)
# ->  성공횟수 10중 3 +  이항분포의 확률(0.4)과 같은 population 4 / 10 을 유지하자. 나중 증명을 위해 ***
# -> 10명을 다뽑았는데 남자가 3명일 수없다. 다 뽑혀서 남자4 여자6이다. -> 확률0

# - dhyper(3명이 남자일 확률,    남자size 4명, 여자size 6명,     추출한 사람 10명)
dhyper(3,   4,6,   10) # 0

# 남4 여자6 중에 10명을 뽑았을 때 남자가 4명일 확률? -> 100% = 1
dhyper(4,   4,6,   가10) # 1

# *** 좀 의미있게 문제 바꾸기위해 전체size를2배 늘려보자.(이항분포 확률 0.4 + 성공횟수 10 중 3 유지)
# - 이항분포에서의 남자의 확률과 같은  0.4 + 성공횟수3 을 유지할 수 있도록,
# - 남8여12 중 10명을 뽑았을 때, 남자가 3명일 확률

dhyper(3,  8,12,   10) # 0.24


#### 3. ***이항분포의 확률(0.4)와 같은 확률+ 성공횟수(10중3)을 가진 초기하분포(dhyper)는 전체(population) size가 커지면---> 이항분포(dbinom)과 같아진다. ####

dbinom(3, 10, 0.4) #0.214

dhyper(3,   4,6,     10) # 처음시작 0
dhyper(3,   8,12,    10) # 전체size 2배 0.24
dhyper(3,   12,18,   10) # 전체size 3배 0.233
dhyper(3,   20,30,   10) # 전체size 5배 0.225

#*** 프로그래밍적으로 코드 작성***
# 이항분포의 횟수 4+6 중 3   에서 시작해서
# 전체 size를 100배까지 늘려줄 때,( population size를 4*100 + 6*100 까지 늘임)
# 그릇에 담아서 확률이 이항분포와 같아지는지 확인


a = 100
approx <-numeric(length=a) # a개의 개수(length)를 숫자형 자료벡터(확률이 들어갈 그릇)

for( i in 1:a){
   approx[i] <- dhyper(3,    4*i,6*i    , 10)
}
approx
image


# ***100개의 확률이 어디로 근접하는지 plot으로 확인하자
# approx[1]은 확률이 0이라서,, 그래프가 안그려지더라...?  2부터..
plot(approx[2:100])
image


# *** 초기하분포 확률 plot에다가  이항분포의 확률을 선으로 그려주자.
# *abline( h = 값) - 직선을 그려주는데 h(수평선)을 그려준다.
abline(h = dbinom(3, 10, 0.4), col="red")
image


# 값 차이
approx - dbinom(3, 10, 0.4) # 마지막 100번째엔 0.0005 차이

+ Recent posts