'R 분석과 프로그래밍/R 통계분석'에 해당되는 글 43건

  1. 2015.09.15 R 포아송 분포 (Poisson distribution) : pois() 7
  2. 2015.09.13 R 초기하분포 (Hypergeometric distribution) : dhyper(x, m, n, k)
  3. 2015.09.13 R 이항분포 (Binomial Distribution) : dbinom() 6

이산형 확률 분포에는

 

 - 이항분포 (Binomial distribution)

    : binom()

 

 - 초기하분포 (Hypergeometric distribution)

    : hyper()

 

 - 포아송 분포 (Poisson distribution)

    : pois()

 

등이 있습니다.  지난 포스팅에서 이항분포, 초기하분포를 다루었으며, 이번 포스팅에서는 이산형 확률 분포 중에서 포아송 분포 (Poisson distribution)에 대해서 알아보도록 하겠습니다.

 

포아송 분포의 포아송은 17세기의 프랑스의 수학자인 S.D.Poisson 의 이름으로서, S.D.Poisson 은 이항확률을 손으로 계산하는 것이 매우 어렸었던 점을 개선하고자 지수식을 사용해서 이항확률의 근사값을 계산할 수 있는 확률 함수를 만들었는데요, 그것이 바로 포아송 분포입니다.  (요즘에는 컴퓨터로 어떤 확률분포이든지 간에 눈 깜짝할 사이에 계산할 수 있지만 17세기에는 힘들었겠지요? ^^')

 

 

확률변수 X가 이항분포 B(n, p)를 따를 때 np = λ 로 일정하게 두고, n이 충분히 크고 p가 0에 가까울 때 이항분포에 근사하는 포아송 분포 (Poisson distribution)은 아래와 같습니다.

 

 

* 참고 : e 는 자연로그의 밑으로 2.718281827845.... 의 무리수

 

 

포아송 분포(Poisson distribution)는 일정한 단위 시간, 단위 공간에서 어떤 사건이 랜덤하게 발생하는 경우에 사용할 수 있는 이산형 확률분포입니다.  가령, 1시간 동안 은행에 방문하는 고객의 수, 1시간 동안 콜센터로 걸려오는 전화의 수, 1달 동안 경부고속도로에서 교통사고가 발생하는 건수, 1년 동안 비행기가 사고가 발생하는 건수, 책 1페이지당 오탈자가 발생하는 건수, 반도체 웨이퍼 25장 당 불량 건수 등과 같이 단위 시간 혹은 단위 공간에서의 랜덤한 사건에 대해 사용하게 됩니다.

 

(참고로, 연속형 확률 분포 중 지수 분포(exponential distribution)는 특정 사건과 사건 사이의 간격에 대한 분포로서, 헷갈리지 않도록 주의가 필요합니다.)

 

포아송 분포에서 모수 λ (lambda 라고 발음함)는 일정한 단위 시간 또는 단위 공간에서 랜덤하게 발생하는 사건의 평균 횟수를 의미합니다.

 

R 에서 포아송 분포를 사용할 수 있는 함수 및 모수는 아래 표와 같습니다.

 

함수 구분

포아송 분포 R 함수/ 모수

pois() 

  밀도 함수

 d

  dpois(x, lambda)

  누적 분포 함수

 p

  ppois(q, lambda, lower.tail = TRUE/FALSE

  분위수 함수

 q

  qpois(p, lambda, lower.tail = TRUE/FALSE

  난수 발생

 r

  rpois(n, lambda)

 

 

그럼, 이제부터 하나씩 차근차근 예를 들어보겠습니다.

 

 

(1) λ = 3 인 포아송 분포 그래프 (Poisson distribution plot of lambda = 3)

 

 
> # (1) 포아송 분포 그래프 (Poisson distribution plot)
> plot(dpois(x=c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10), lambda = 3), 
+      type='h',
+      main = "Poisson distribution, lambda = 3")

 

 

 

 

 

 

 

(2) P ( X = 15) 확률 계산 : dpois(x, lambda)

 

문제)  어느 은행의 1시간 당 방문 고객 수가 λ = 20 인 포아송 분포를 따른다고 한다.  그럼 1시간 당 방문고객수가 15명일 확률은?

 

 

> # (2) P(X = 15) in Poisson distribution with lambda = 20
> dpois(x=15, lambda = 20)
[1] 0.05164885
 

 

 

 

(3) P ( X <= 15) 확률 계산 : ppois(q, lambda, lower.tail = TRUE)

 

문제)  어느 은행의 1시간 당 방문 고객 수가 λ = 20 인 포아송 분포를 따른다고 한다.  그럼 1시간 당 방문고객수가 15명 이하일 확률은?

 

 
> # (3) P(X =< 15) in Poisson distribution with lambda = 20
> ppois(q=15, lambda = 20, lower.tail = TRUE)
[1] 0.1565131
>
 
> sum(dpois(x=c(0:15), lambda = 20)) # the same result with the ppois()
[1] 0.1565131

 

 

 

 

(4) 특정 확률 값에 해당하는 분위수 계산 : qpois(p, lambda, lower.tail=TRUE)

 

문제) 어느 은행의 1시간 당 방문 고객 수가 λ = 20 인 포아송 분포를 따른다고 한다.  만약 1시간 동안 방문한 고객수에 해당하는 확률이 15.65131% 이라면 이는 몇 명에 해당하는가?

 

 
> qpois(p=0.1565131, lambda = 20, lower.tail = TRUE)
[1] 15

 

 

 

 

(5) 난수 발생 : rpois(n, lambda)

 

문제 ) λ = 20 인 포아송 분포에서 n = 1000 개의 난수를 발생시키고, 도수분포표를 구하고, 도수별 막대그래프를 그려보아라.

 

 

> rpois(n=1000, lambda = 20)
   [1] 18 17 21 16 19 25 18 22 18 24 28 23 21 11 19 25 20 27 24 27 12 17 11 16 17 18 21 17 16 22 16
  [32] 20 24 18 26 15 20 17 25 18 16 23 18 17 20 28 18 16 21 18 21 20 16 21 22 11 20 18 20 10 15 17
  [63] 14 15 22 20 16 26 18 25 14 11 22 24 23 19 26 12 17 23 17 24 21 17 19 24 28 26 18 24 17 19 18
  [94] 19 24 22 23 20 25 21 22 16 20 24 20 22 24 25 22 23 20 19 28 19 21 15 27 27 17 14 20 25 26 25
 [125] 26 16 22 16 22 21 15 15 21 19 29 15 23 21 23 31 16 33 18 21 24 28 34 25 19 24 22 23 30 27 21
 [156] 20 16 18 18 13 21 20 23 21 15 12 18 25 16 15 26 18 22 18 10 26 23 19 13 18 22 23 21 22 12 20
 [187] 20 19 17 18 18 15 20 11 25 21 20 20 20 22 19 31 18 23 16 18 21 29 19 20 20 16 22 18 16 22 18
 [218] 14 18 23 18 22 15 15 14 19 20 23 11 20 17 21 23 17 21 12 28 22 19 16 20 14 27 20 26 19 22 19
 [249] 22 21 20 24 21 23 25 14 19 18 22  8 20 13 19 22 22 20 18 15 22 22 13 20 24 18 25 18 19 30 22
 [280] 18 30 22 10 25 21 18 19 19  7 25 15 27 23 26 21 16 21 19 21 24 16 18 18 21 25 10 15 25 18 21
 [311] 18 27 15 26 21 33 13 20 18 22 27 16 11 18 18 26 20 28 20 17 22 19 24 25 13 13 16 21 21 21 20
 [342] 18 21 18 16 11 15 24 19 24 31 23 24 17 21 20 19 16 20 23 27 18 23 20 14 27 14 26 15 14 10 23
 [373] 22 29 20 17 24 29 26 17 15 16 23 27 14 17 21 21 14 22 27 16 22 19 19 15 25 20 23 16 20 16 16
 [404] 20 18 18 16 31 15 13 15 16 18 17 23 19 20 18 24 13 24 20 25 22 15 17 25 12 11 19 16 19 26 29
 [435] 23 18 17 15 23 18 32 23 30 21 19 24 24 21 17 22 23 27 21 23 17 20 20 22 15 15 21 32 23 24 16
 [466] 28 18 23 24 22 20 18 19 18 15 16 16 20 17 16 12 18 25 23 21 17 19 21 24 20 16 20 26 19 21 28
 [497] 25 16 14 19 16 19 25  9 12 20 20 18 23 27 19 12  9 21 15 27 17 21 23 18 17 11 23 20 19 25 18
 [528] 17 19 22 18 28 25 25 17 26 30 26 17 22 16 22 16 31 15 25 16 23 15 23 15 20 20 18 21 19 15 23
 [559] 24 23 21 21 14 15 20 23 29 19 15 18 18 12 19 17 22 33 24 19 10 26 22 24 23 25 14 16 19 18 21
 [590] 19 32 18 20 22 23 16 18 22 16 25 14 19 23 19 14 17 24 26 19 18 27 20 21 19 21 27 20 30 17 26
 [621] 23 27 23 23 24 26 21 21 13 21 20 22 16 23 22 27 16 22 25 26 14 32 27 34 19 18 23 19 19 17 15
 [652] 29 15 19 18 16 19 19 15 16 19 28 18 19 17 14 19 23 25 31 24 24 14 19 17 19 25 20 24 21 17 20
 [683] 20 25 24 18 16 22 20 18 16 22 17 12 20 25 21 39 22 19 12 12 25 18 31 23 15 20 20 23 15 23 15
 [714] 22 17 14 14 13 16 17 22 18 14 26 28 21 17 24 26 26 17 14 15 24 26 11 25 31 20 24 19 27 19 30
 [745] 18 16 24 14 23 19 19 24 18 19 18 19 16 21 18 18 14 19 12 20 27 23 20 25 31 17 17 24 20 32 14
 [776] 29 19 26 22 21 21 17  9 19 23 23 19 28 15 19 17 19 26 20 23 19 18 20 14 21 14 22 16 16 12 25
 [807] 23 14 13 18 19 22 16 21 25 21 24 13 20 21 24 20 21 35 15 23 16 12 25 16 16 18 28 18 27 19 18
 [838] 19 27 25 23 16 26 16 17 17 21 12 20 26 18 22 15 26 16 21 20 16 13 25 14 16 13 23 19 12 23 21
 [869] 17 16 17 29 24 16 15 14 17 24 25 22 23 23 24 22 22 26 20 21 18 26  8 20 18 18 22 21 23 23 19
 [900] 16 13 23 14 17 20 23 18 20 19 23 22 21 19 19 17 15 22 26 22 17 18 29 14 16 26 21 19 17 15 21
 [931] 26 19 23 23 18 23 15 15 24 22 25 16 18 19 13 18 25 19 22 15 18 20 28 15 24 20 17 21 20 23 17
 [962] 22 18 25 19 21 21 22 21 18 18 21 17 26 16 23 25 27 33 30 20 22 24 17 14 21 21 24 20 24 23 14
 [993] 20 29 12 25 18  6 14 22
 
> table(rpois(n=1000, lambda = 20))

 7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 
 1  2  3  6 13 17 33 31 45 74 76 77 87 95 86 73 65 59 37 36 28 16 14 12  4  8  2 

 

 

> plot(table(rpois(n=1000, lambda = 20)))
 

 

 

위 그래프를 보면 λ = 20 이므로 평균이 20 인 위치에서 가장 높게 모여있고, 오른쪽으로 꼬리가 긴 포아송 분포를 따르고 있음을 알 수 있습니다.


빈도 데이터 분석을 위한 포아송 회귀모델(Poisson Regression Model)과 과대산포, 과대영 문제가 있을 경우 대안으로 활용할 수 있는 모델에 대한 내용은 https://rfriend.tistory.com/490 를 참고하세요. 

 

많은 도움 되었기를 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡'를 꾸욱 눌러주세요. ^^

 

728x90
반응형
Posted by Rfriend
,

이산형 확률 분포에는

 

 - 이항분포 (Binomial distribution)

    : binom()

 

 - 초기하분포 (Hypergeometric distribution)

    : hyper()

 

 - 포아송 분포 (Poisson distribution)

    : pois()

 

등이 있습니다.

 

이전 포스팅에서 이산형 확률 분포(Discrete probability distribution) 중에서 베르누이 시행을 따르는 이항분포(binomial distribution)에 대해서 알아보았습니다.  이항분포는 모집단에서 표본을 추출하고 다시 샘플링한 표본을 다시 모집단에 집어넣고 (다른 말로 '복원') 또 표본 추출하는 작업을 하게 됩니다.  이렇다 보니 성공할 확률 p 가 항상 동일합니다.

 

그런데, 만약 모집단에서 표본을 추출하고 그것을 다시 모집단에 집어넣지 않는다면 (다른 말로 '복원하지 않는다면') 그때는 이런 과정을 베르누이 시행이라고 할 수가 없게 되고, 확률도 표본을 추출할 때마다 자꾸 바뀌게 됩니다.  쉽게 예를 들어서 빨간 공 5개, 파란 공 5개가 들어있는 주머니가 있다고 했을 때 처음에는 빨간 공이 뽑힐 확률이 5/10 = 0.5 이지만, 만약에 첫번째로 주머니에서 공을 하나 뽑았을 때 그것이 빨간 공이었다면 두번째에 뽑을 때 그것이 빨간공일 확률은 4/9 = 0.44444로 바뀌게 됩니다. (첫번째에 빨간공을 하나 뽑고 그것을 다시 주머니에 집어넣지(복원하지) 않았으므로...)

 

이처럼 성공확률이 p, 크기가 N인 모집단에서 n 개의 표본을 비복원으로 추출할 때 성공이 일어나는 횟수를 X라고 하면, X는 "모수 N, n, p인 초기하 분포를 따른다"고 합니다.

 

 

 

 

 

만약 초기하분포에서 성공이 일어날 확률 p를 일정하게 했을 때 모집단의 수 N을 무한대로 크게 하면 샘플을 복원추출하느냐 비복원추출하느냐가 별 의미가 없어지게 되므로 초기하분포는 이항분포로 근사하게 됩니다.  위의 예를 인용하자면 빨간공이 5억개, 파란공이 5억개 들어있는 주머니에서 공을 5개를 샘플로 뽑는다고 했을 때 1번째에 빨간공이 나왔을 때 2번째에 빨간공이 나올 확률은 복원추출이냐 비복원추출이냐가 성공확률 p에 거의 영향이 없다는 뜻입니다.  

 

따라서 모집단을 구성하는 개체가 성공(success, 1)/실패(failure, 0)의 두 가지 경우의 수만을 가지고 있는데, 모집단 N이 작을 때는 복원추출이면 이항분포, 비복원추출이면 초기하분포를 사용해야 하며, 만약 모집단 N이 충분히(?) 클 경우에는 초기하분포가 이항분포로 근사하므로 둘 중 아무거나 사용해도 대세에는 지장없다고 알고 있으면 되겠습니다.

 

 

초기하분포의 밀도 함수, 누적분포 함수, 분위수 함수, 난수 발생을 위한 R 함수 및 모수는 아래와 같습니다.

 

구분 

초기하분포 R 함수 / 모수 

 밀도 함수

d

  dhyper(x, m, n, k)

 누적분포 함수

p

  phyper(q, m, n, k, lower.tail = TRUE/FALSE)

 분위수 함수

q

  qhyper(p, m, n, k, lower.tail = TRUE/FALSE)

 난수 발생

r

  rhyper(nn, m, n, k)

 

* 참고: 모집단이 m과 n의 개체로 구성되어 있는데 k개의 표본을 추출

           lower.tail = TRUE 이면 확률변수 x를 기준으로 왼쪽 꼬리를 의미

 

 

초기하분포 그래프 (Hypergeometric distribution plot) 을 예로 하나 그려보면 아래와 같습니다.

 

 
> plot(dhyper(x=c(0:20), m=5, n=20, k=5), 
+      type='h', 
+      main = "Hypergeometric distribution, with m=5, n=20, k=5")

 

 

 

 

 

 

 

 

(1) P(X = 4) 확률 계산 : dhyper(x, m, n, k)

 

문제) 어떤 바리스타가 아메리카노 향 냄새를 맡아보기만 하면 "콜롬비아 원두"로 만든 것인지 아닌지를 맞출 수 있다고 주장하였다고 합니다.  그래서 그 바리스타를 데려다가 실험을 해보았습니다.  "콜롬비아 원두"로 만든 아메리카노 5잔 (m=5), 콜롬비아 원두 말고 다른 지역 원두로 만든 아메리카노 20잔 (n=20) 을 만들어 놓고 그 바리스타에게 "콜롬비아 원두"로 만든 아메리카노 5잔을 골라내 보라고 시켰습니다.  이때 "콜롬비아 원두"로 만든 아메리카노를 4잔 골라낼 확률은?

 

 
> dhyper(x=4, m=5, n=20, k=5)
 
[1] 0.001882176

 

 

이 문제의 경우 비복원추출에 해당하므로 초기하분포를 따른다고 볼 수 있으며, 총 25잔의 아메리카노 커피, "콜롬비아 원두"로 만든 것은 5잔인데 이 중에서 "콜롬비아 원두"로 만든 아메리카노를 4잔 골라낼 확률이 0.188% 이므로, 이 정도면 우연히 뽑아냈다고 보기는 힘들겠지요?  매우 예민한 코를 가진 바리스타라고 인정해줄 만 하겠습니다.

 

 

  

이해를 돕기 위해서 문제 하나 더 풀어보겠습니다.

 

문제 2) TV를 생산하는 제조회사에서 생산한 TV 100 대 중에서 품질이 양호한 TV가 95대, 불량품이 5대가 재고창고에 들어있다고 합니다.  이 재고 창고에서 TV 10개를 비복원추출한다고 했을 때 불량품이 3개가 포함되어 있을 확률은?

 

 
> dhyper(x=3, m=5, n=95, k=10)
 
[1] 0.006383528

 

 

 

 

 

(2) P(X <= 4) 확률 값 계산 : phyper(q, m, n, k, lower.tail=TRUE)

 

 

> # (2) P(X <= 4) 확률 값 계산 : phyper(q, m, n, k, lower.tail=TRUE)

 
> phyper(q=4, m=5, n=20, k=5, lower.tail=TRUE)
 
[1] 0.9999812
 

 

 

phyper() 함수를 사용하지 않는다면, 추천할만한 방법은 아니지만 좀 무식하게 dhyper()함수로 X가 0, 1, 2, 3, 4 일 때의 개별 밀도함수를 구해서 sum()해주는 방법을 사용해도 결과는 똑같습니다.  개념 이해하는데 참고만 하세요.

 

 

 
> dhyper(x=0, m=5, n=20, k=5)
 
[1] 0.2918125
 

> dhyper(x=1, m=5, n=20, k=5)
 
[1] 0.4559571
 
> dhyper(x=2, m=5, n=20, k=5)
 
[1] 0.214568
 
> dhyper(x=3, m=5, n=20, k=5)
 
[1] 0.03576134
 
> dhyper(x=4, m=5, n=20, k=5)
 
[1] 0.001882176
> 
 
 
 
> sum(dhyper(x=c(0:4), m=5, n=20, k=5))
 
[1] 0.9999812
 

 

 

 

(3) 특정 확률에 해당하는 분위수 구하기 : qhyper(p, m, n, k, lower.tail = TRUE/FALSE)

 

 
> dhyper(x=3, m=5, n=20, k=5)
 
[1] 0.03576134
> 

> qhyper(p=0.03576134, m=5, n=20, k=5, lower.tail=F)
 
[1] 3
 
#-------------------------------
 
> phyper(q=3, m=5, n=20, k=5, lower.tail = T)
 
[1] 0.998099
> 
 
> qhyper(p=0.998099, m=5, n=20, k=5, lower.tail=T)
 
[1] 3
 

 

위의 첫번째 예제를 보면 dhyper(x=3, m=5, n=20, k=5) = 0.03576134 입니다.  즉, m이 5개, n이 20개 들어있는 모집단에서 5번 비복원추출했을 때 확률변수 x가 3번 발생할 확률이 0.03576134라는 뜻입니다.

 

그런데 만약 확률 0.03576134를 알고 있을 때 이에 해당하는 확률 변수 x를 구하는 것이 위의 첫번째 예제에서 qhyper(p=0.03576134, m=5, n=20, k=5, lower.tail=FALSE) = 3 으로 문제를 푼 것입니다.

 

 

위의 두번째 예제에서는 phyper(q=3, m=5, n=20, lower.tail = T = 0.998099 로서 phyper() 함수를 사용했으므로 누적분포함수에 대한 확률을 계산한 것입니다.  이처럼 누적확률분포의 분위수를 계산하려면 이번에는 qhyper(p, m, n, k, lower.tail=TRUE) 처럼 lower.tail=TRUE 옵션을 설정해주면 되겠습니다.

 

 

 

(4) 난수 발생 : rhyper(nn, m, n, k)

 

m=5, n=20 인 초기하분포에서 비복원으로 5개를 추출하는 것을 1000번 모의실험한 후에 도수분포표를 구해보겠습니다.

 

 
> random_hyper <- rhyper(1000, m=5, n=20, k=5)
 
> random_hyper
 
   [1] 1 0 0 0 0 0 1 0 3 1 0 1 1 1 1 2 0 3 0 1 2 2 1 2 0 1 1 1 3 0 1 1 0 2 1 2 1 0 0 1 2 0 1 2 0 2
  [47] 1 2 1 1 1 1 2 1 1 2 2 1 1 2 1 0 1 1 1 3 1 0 1 1 0 0 1 1 0 1 2 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1
  [93] 2 1 2 1 0 0 0 1 1 3 1 1 2 0 1 2 1 1 0 0 1 2 0 1 2 1 1 0 1 1 1 0 1 1 2 0 2 0 1 1 0 0 1 2 2 1
 [139] 0 2 2 1 3 0 2 2 1 1 0 3 0 0 1 1 1 0 0 2 2 0 3 0 3 2 0 0 0 2 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0
 [185] 1 2 1 0 2 0 1 1 1 0 2 2 1 1 0 1 1 0 0 0 2 1 3 1 2 2 1 2 1 1 1 1 2 0 1 1 0 0 2 0 2 1 0 1 1 2
 [231] 2 2 0 3 1 1 1 2 1 3 2 1 2 1 2 0 0 1 0 0 1 2 2 2 1 1 1 4 1 2 0 2 1 1 1 1 1 1 1 1 0 1 0 2 0 0
 [277] 1 1 0 2 1 0 3 1 0 0 1 2 2 2 0 2 1 1 0 3 1 2 1 2 0 1 1 1 2 1 0 1 2 1 0 0 3 0 2 2 0 1 1 0 1 0
 [323] 2 2 1 1 3 1 1 0 1 2 0 0 0 0 0 3 2 0 2 2 1 1 1 2 1 0 1 1 2 0 0 1 2 0 0 2 1 2 1 2 2 2 1 1 0 1
 [369] 1 2 1 2 1 0 1 0 1 1 1 0 2 2 1 0 2 0 0 0 1 0 2 1 1 2 1 1 0 1 0 1 2 1 0 1 1 0 3 2 2 3 0 1 0 1
 [415] 1 0 0 0 2 2 1 2 1 1 1 0 2 2 2 0 1 2 3 2 1 1 0 1 1 1 1 0 1 2 3 1 0 1 2 2 0 1 1 2 1 0 2 1 0 1
 [461] 1 1 1 0 0 0 1 1 2 0 1 2 1 0 1 1 1 0 1 3 2 0 0 1 1 1 1 3 0 0 3 2 0 2 0 1 1 0 0 2 1 0 1 0 1 1
 [507] 0 1 1 2 1 1 1 1 1 2 0 0 1 2 0 1 0 1 0 1 1 1 1 0 1 3 0 1 0 1 2 3 1 1 1 2 0 2 1 1 0 0 2 2 2 0
 [553] 1 1 1 0 1 0 1 0 1 1 0 2 0 0 1 1 2 1 1 0 0 0 1 1 1 1 3 2 0 2 0 2 0 2 1 0 0 1 2 1 1 2 1 0 0 2
 [599] 0 0 0 1 1 2 1 1 2 2 1 0 1 3 1 2 2 2 2 1 0 2 1 4 3 3 0 3 1 2 2 1 1 2 1 2 3 2 2 0 1 1 2 3 1 0
 [645] 1 1 2 1 1 1 1 1 1 1 2 1 1 2 0 2 2 1 2 0 1 0 3 2 0 2 1 0 1 1 0 0 0 1 1 0 3 0 2 1 1 1 2 1 1 0
 [691] 1 0 1 1 0 2 2 1 1 2 0 0 0 2 0 1 1 3 0 0 1 2 0 0 0 2 1 2 0 1 1 1 0 2 2 1 3 0 1 3 2 0 1 2 1 1
 [737] 1 0 1 1 2 1 1 1 2 1 1 1 0 2 0 1 1 1 0 2 0 1 1 0 1 1 1 1 1 0 0 0 2 0 0 1 2 1 2 0 1 1 1 0 0 0
 [783] 1 1 1 0 0 0 3 0 2 1 2 1 1 1 0 1 1 1 0 1 0 0 2 0 1 4 0 1 0 1 2 0 2 0 1 1 1 1 1 0 2 2 1 1 2 1
 [829] 0 0 0 1 2 2 1 2 1 1 1 0 2 1 1 1 1 1 3 1 1 2 1 2 1 3 1 0 1 1 0 3 0 0 1 1 2 1 0 0 0 0 1 1 1 2
 [875] 3 0 1 0 0 1 0 0 2 0 1 0 1 0 0 0 0 0 2 0 1 2 0 2 0 1 1 1 0 0 0 1 1 2 2 2 1 0 1 3 1 2 1 1 2 1
 [921] 3 0 1 2 2 1 0 1 1 0 0 2 1 0 0 1 2 1 1 1 1 1 1 0 0 1 1 0 0 1 2 0 1 2 1 2 1 1 0 1 1 0 0 0 1 1
 [967] 2 1 1 0 0 0 2 1 1 0 0 2 1 1 0 2 2 2 0 1 2 2 0 2 3 2 2 1 0 1 1 0 0 0
 
 
> table(random_hyper)
random_hyper
  0   1   2   3   4 
302 434 215  46   3

 

 

많은 도움 되었기를 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡'를 꾸욱 눌러주세요. ^^

 

 

728x90
반응형
Posted by Rfriend
,

통계에서 다양한 확률분포를 배웠을 텐데요, 왜 확률분포를 어디에 써먹는 것인지 잘 모르고 '어려운 개념'에 통계를 멀리하게 되는 시발점이 되는 경우가 많지 않았을까 싶습니다.  

 

만약 우리가 모집단이 어떤 확률분포를 띠고 있는지를 안다면 주어진 분위수에 대한 확률을 계산한다거나, 아니면 특정 확률에 해당하는 분위수를 계산할 수 있습니다.  그리고 시뮬레이션을 한다고 했을 때 확률분포를 이용해서 난수를 발생시켜서 사용할 수도 있습니다.

 

확률분포는 크게 이산형 확률 분포(Discrete probability distributon)과 연속형 확률 분포(Continuous probability distribution)으로 나눌 수 있습니다. 

 

이산형 확률 분포(Discrete Probability Distribution)에는 이항분포(Binomial distribution), 초기하분포(Hypergeometric distribution), 포아송 분포(Poisson distribution) 등이 있습니다. 

 

연속형 확률 분포 (Continuous probability distribution)에는 정규분포(Normal distributio), t-분포(t-distribution), F분포(F-distributio), 균등분포(Uniform distribution), 카이제곱분포(Chisq-distribution), 감마분포(Gamma distribution) 등이 있습니다.

 

이번 포스팅에서는 이산형 확률 분포 중 첫번째로 이항분포(Binomial distiribution)의 기본 개념에 대해 알아보고 R로 이항분포 그래프, 주어진 분위수에 대한 확률 계산, 그리고 특정 확률에 해당하는 분위수 계산, 난수 발생을 하는 방법에 대해 소개해 보겠습니다.

 

 

어떤 실험을 반복해서 시행한다고 했을 때 각 시행마다 "성공(success, 1)" 또는 "실패(failure, 0)"의 두 가지 경우의 수만 나온다고 할 때, 우리는 이런 시행을 "베르누이 시행(Bernoulli trial)"이라고 합니다. 

 

그리고 성공확률이 p인 베르누이 시행을 n번 반복했을 때 성공하는 횟수를 X라 하면, 확률변수 X는 모수 n과 p인 이항분포(Binomial distributio)을 따른다고 합니다. 

 

 

 

* 참고: f(x)의 첫번째 줄에 있는 n개 중에서 x개를 복원추출로 뽑는(다른 말로, n번 시행할 때 x번 성공하는) nCx = n! / x!(n-x)!

 

 

예를 들어서, 시행 회수 20회, 복원추출, 성공/실패 확률 50%인 베르누이 시행 (가령, 동전 던지기 앞(Head), 뒤(Tail) 을 R의 sample() 함수를 사용해서 시뮬레이션을 해보면 아래와 같습니다.  시행을 할 때마다 조금씩 달라지지만 성공/실패 회수는 거의 반, 반으로 비슷함을 알 수 있습니다.

 

 
> sample(c("H", "T"), size=20, replace=TRUE, prob=c(0.5, 0.5))
 [1] "H" "T" "T" "H" "H" "T" "H" "T" "H" "H" "H" "T" "H" "T" "H" "T" "T" "H" "H" "H"
> sample(c("H", "T"), size=20, replace=TRUE, prob=c(0.5, 0.5))
 [1] "T" "H" "T" "H" "H" "H" "H" "T" "H" "H" "H" "H" "T" "T" "H" "T" "T" "T" "H" "T"
> sample(c("H", "T"), size=20, replace=TRUE, prob=c(0.5, 0.5))
 [1] "H" "H" "T" "T" "H" "H" "H" "T" "T" "T" "T" "H" "H" "T" "T" "T" "T" "H" "T" "T"

 

 

 

이항분포의 밀도 함수, 누적 분포 함수, 분위수 함수, 난수 발생을 위한 R 함수 및 모수는 다음과 같습니다.

 

 구분

이항분포(binom) R 함수/모수 

  밀도 함수

  dbinom(x, size, prob)

  누적 분포 함수

 p

  pbinom(q, size, prob, lower.tail = TRUE / FALSE)

  분위수 함수

 q

  qbinom(p, size,  prob, lower.tail = TRUE / FALSE)

  난수 발생

 r

  rbinom(n, size, prob)

 

 

 

(1) 성공확률 0.5인 베르누이 시행을 20회 했을 때의 이항분포 밀도함수 : plot()

 

 
> y <- dbinom(0:20, size=20, prob=0.5)
> plot(0:20, y, type='h', lwd=5, col="grey", ylab="Probability", xlab="확률변수 X", 
+      main = c("X ~ B(20, 0.5)"))

 

 

 

 

 

 

(2) P(X = 12) 확률 계산 : dbinom(x, size, prob)

 

 

> # P(X = 12) 확률 계산
> dbinom(12, size=20, prob=0.5)
[1] 0.1201344
 

 

 

 

(3) P(X <= 12) 확률 계산 : pbinom(x, size, prob, lower.tail=TRUE)

 

 

> # (3) P(X <= 12) 확률 계산 > pbinom(12, size=20, prob=0.5, lower.tail = TRUE) [1] 0.868412 > > sum(dbinom(0:12, size=20, prob=0.5)) # dbinom()을 sum()해도 동일한 값 [1] 0.868412

 

 

 

(4) P(X > 12) 확률 계산 : pbinom(x, size, prob, lower.tail = FALSE)

 

 

> pbinom(12, size=20, prob=0.5, lower.tail = FALSE)
[1] 0.131588

> 1 - pbinom(12, size=20, prob=0.5, lower.tail = TRUE) # 동일한 값 [1] 0.131588

 

 

 

 

(5) 이항분포  난수 발생 : rbinom(n, size, prob)

 

> rbinom(12, size=20, prob=0.5)
 [1] 13 10  9 14 10  9  9  7 17  9  6 10
> 
> rbinom(12, size=20, prob=0.5)
 [1] 11 11  9 13  4 12  7 10 10 14 10 13
> 
> rbinom(12, size=20, prob=0.5)
 [1]  7  5 11  9 13 10 11 14 10 14  4 10

 

 

 

 

(6) 이항분포 누적분포함수 그래프

 

 

> # (6) 누적분포함수 그래프
> plot(pbinom(0:20, size=20, prob=0.5), type='h')
 

 

 

 

 

 

 

이메일로 아래와 같은 질문을 보내주신 분이 계셔서 질문이랑 답변 공유합니다.  repeat{} 로 프로그램 짜서 루프를 돌려서 근사값을 구했습니다.

 

Question) 

이항분포에서 prob의 값이 주어지지 않았을때 값을 구할 수 있을까요?

 

예를들어 200번 실험 중 50번 이상 실험이 설공할 확률이 0.2보다 클 경우를 구하려고 합니다.

1-pbinom(49,200,prob)>0.2

인데, 이와 관련해 prob를 구할 수 있을까요?

 

 

> i <- 0.01
> repeat {
+   pbinom_x_50_upper_size_200 <- pbinom(50, size=200, prob=i, lower.tail = FALSE) 
+   cat("pbinom(x=50, size=200, prob=", i, ", lower.tail=FALSE) = ", pbinom_x_50_upper_size_200, "\n", sep="")
+   if (pbinom_x_50_upper_size_200 > 0.2) break
+   i <- i+0.001
+ }
pbinom(x=50, size=200, prob=0.01, lower.tail=FALSE) = 3.0749e-55
pbinom(x=50, size=200, prob=0.011, lower.tail=FALSE) = 3.425864e-53
pbinom(x=50, size=200, prob=0.012, lower.tail=FALSE) = 2.499419e-51
pbinom(x=50, size=200, prob=0.013, lower.tail=FALSE) = 1.277906e-49
pbinom(x=50, size=200, prob=0.014, lower.tail=FALSE) = 4.826703e-48
pbinom(x=50, size=200, prob=0.015, lower.tail=FALSE) = 1.40426e-46
pbinom(x=50, size=200, prob=0.016, lower.tail=FALSE) = 3.254805e-45
pbinom(x=50, size=200, prob=0.017, lower.tail=FALSE) = 6.178075e-44
pbinom(x=50, size=200, prob=0.018, lower.tail=FALSE) = 9.825351e-43
pbinom(x=50, size=200, prob=0.019, lower.tail=FALSE) = 1.334491e-41
pbinom(x=50, size=200, prob=0.02, lower.tail=FALSE) = 1.573198e-40
pbinom(x=50, size=200, prob=0.021, lower.tail=FALSE) = 1.632106e-39
pbinom(x=50, size=200, prob=0.022, lower.tail=FALSE) = 1.507896e-38
pbinom(x=50, size=200, prob=0.023, lower.tail=FALSE) = 1.253499e-37
pbinom(x=50, size=200, prob=0.024, lower.tail=FALSE) = 9.460336e-37
pbinom(x=50, size=200, prob=0.025, lower.tail=FALSE) = 6.533438e-36
pbinom(x=50, size=200, prob=0.026, lower.tail=FALSE) = 4.157663e-35
pbinom(x=50, size=200, prob=0.027, lower.tail=FALSE) = 2.453052e-34
pbinom(x=50, size=200, prob=0.028, lower.tail=FALSE) = 1.349272e-33
pbinom(x=50, size=200, prob=0.029, lower.tail=FALSE) = 6.952835e-33
pbinom(x=50, size=200, prob=0.03, lower.tail=FALSE) = 3.371404e-32
pbinom(x=50, size=200, prob=0.031, lower.tail=FALSE) = 1.544453e-31
pbinom(x=50, size=200, prob=0.032, lower.tail=FALSE) = 6.708377e-31
pbinom(x=50, size=200, prob=0.033, lower.tail=FALSE) = 2.771777e-30
pbinom(x=50, size=200, prob=0.034, lower.tail=FALSE) = 1.092671e-29
pbinom(x=50, size=200, prob=0.035, lower.tail=FALSE) = 4.120884e-29
pbinom(x=50, size=200, prob=0.036, lower.tail=FALSE) = 1.490533e-28
pbinom(x=50, size=200, prob=0.037, lower.tail=FALSE) = 5.182438e-28
pbinom(x=50, size=200, prob=0.038, lower.tail=FALSE) = 1.735721e-27
pbinom(x=50, size=200, prob=0.039, lower.tail=FALSE) = 5.610737e-27
pbinom(x=50, size=200, prob=0.04, lower.tail=FALSE) = 1.753602e-26
pbinom(x=50, size=200, prob=0.041, lower.tail=FALSE) = 5.30802e-26
pbinom(x=50, size=200, prob=0.042, lower.tail=FALSE) = 1.558447e-25
pbinom(x=50, size=200, prob=0.043, lower.tail=FALSE) = 4.444567e-25
pbinom(x=50, size=200, prob=0.044, lower.tail=FALSE) = 1.232885e-24
pbinom(x=50, size=200, prob=0.045, lower.tail=FALSE) = 3.330502e-24
pbinom(x=50, size=200, prob=0.046, lower.tail=FALSE) = 8.771904e-24
pbinom(x=50, size=200, prob=0.047, lower.tail=FALSE) = 2.254996e-23
pbinom(x=50, size=200, prob=0.048, lower.tail=FALSE) = 5.663776e-23
pbinom(x=50, size=200, prob=0.049, lower.tail=FALSE) = 1.391196e-22
pbinom(x=50, size=200, prob=0.05, lower.tail=FALSE) = 3.344884e-22
pbinom(x=50, size=200, prob=0.051, lower.tail=FALSE) = 7.878612e-22
pbinom(x=50, size=200, prob=0.052, lower.tail=FALSE) = 1.819442e-21
pbinom(x=50, size=200, prob=0.053, lower.tail=FALSE) = 4.122599e-21
pbinom(x=50, size=200, prob=0.054, lower.tail=FALSE) = 9.171801e-21
pbinom(x=50, size=200, prob=0.055, lower.tail=FALSE) = 2.004832e-20
pbinom(x=50, size=200, prob=0.056, lower.tail=FALSE) = 4.308392e-20
pbinom(x=50, size=200, prob=0.057, lower.tail=FALSE) = 9.108046e-20
pbinom(x=50, size=200, prob=0.058, lower.tail=FALSE) = 1.895194e-19
pbinom(x=50, size=200, prob=0.059, lower.tail=FALSE) = 3.883594e-19
pbinom(x=50, size=200, prob=0.06, lower.tail=FALSE) = 7.841276e-19
pbinom(x=50, size=200, prob=0.061, lower.tail=FALSE) = 1.560713e-18
pbinom(x=50, size=200, prob=0.062, lower.tail=FALSE) = 3.063672e-18
pbinom(x=50, size=200, prob=0.063, lower.tail=FALSE) = 5.933835e-18
pbinom(x=50, size=200, prob=0.064, lower.tail=FALSE) = 1.134446e-17
pbinom(x=50, size=200, prob=0.065, lower.tail=FALSE) = 2.141708e-17
pbinom(x=50, size=200, prob=0.066, lower.tail=FALSE) = 3.994201e-17
pbinom(x=50, size=200, prob=0.067, lower.tail=FALSE) = 7.361232e-17
pbinom(x=50, size=200, prob=0.068, lower.tail=FALSE) = 1.341135e-16
pbinom(x=50, size=200, prob=0.069, lower.tail=FALSE) = 2.416241e-16
pbinom(x=50, size=200, prob=0.07, lower.tail=FALSE) = 4.306171e-16
pbinom(x=50, size=200, prob=0.071, lower.tail=FALSE) = 7.593772e-16
pbinom(x=50, size=200, prob=0.072, lower.tail=FALSE) = 1.325457e-15
pbinom(x=50, size=200, prob=0.073, lower.tail=FALSE) = 2.290532e-15
pbinom(x=50, size=200, prob=0.074, lower.tail=FALSE) = 3.920003e-15
pbinom(x=50, size=200, prob=0.075, lower.tail=FALSE) = 6.645489e-15
pbinom(x=50, size=200, prob=0.076, lower.tail=FALSE) = 1.11626e-14
pbinom(x=50, size=200, prob=0.077, lower.tail=FALSE) = 1.858251e-14
pbinom(x=50, size=200, prob=0.078, lower.tail=FALSE) = 3.066499e-14
pbinom(x=50, size=200, prob=0.079, lower.tail=FALSE) = 5.01737e-14
pbinom(x=50, size=200, prob=0.08, lower.tail=FALSE) = 8.141335e-14
pbinom(x=50, size=200, prob=0.081, lower.tail=FALSE) = 1.310357e-13
pbinom(x=50, size=200, prob=0.082, lower.tail=FALSE) = 2.092391e-13
pbinom(x=50, size=200, prob=0.083, lower.tail=FALSE) = 3.315409e-13
pbinom(x=50, size=200, prob=0.084, lower.tail=FALSE) = 5.213765e-13
pbinom(x=50, size=200, prob=0.085, lower.tail=FALSE) = 8.138827e-13
pbinom(x=50, size=200, prob=0.086, lower.tail=FALSE) = 1.261367e-12
pbinom(x=50, size=200, prob=0.087, lower.tail=FALSE) = 1.941161e-12
pbinom(x=50, size=200, prob=0.088, lower.tail=FALSE) = 2.966815e-12
pbinom(x=50, size=200, prob=0.089, lower.tail=FALSE) = 4.503954e-12
pbinom(x=50, size=200, prob=0.09, lower.tail=FALSE) = 6.792603e-12
pbinom(x=50, size=200, prob=0.091, lower.tail=FALSE) = 1.017839e-11
pbinom(x=50, size=200, prob=0.092, lower.tail=FALSE) = 1.51559e-11
pbinom(x=50, size=200, prob=0.093, lower.tail=FALSE) = 2.242863e-11
pbinom(x=50, size=200, prob=0.094, lower.tail=FALSE) = 3.299116e-11
pbinom(x=50, size=200, prob=0.095, lower.tail=FALSE) = 4.824148e-11
pbinom(x=50, size=200, prob=0.096, lower.tail=FALSE) = 7.01333e-11
pbinom(x=50, size=200, prob=0.097, lower.tail=FALSE) = 1.013817e-10
pbinom(x=50, size=200, prob=0.098, lower.tail=FALSE) = 1.457388e-10
pbinom(x=50, size=200, prob=0.099, lower.tail=FALSE) = 2.083625e-10
pbinom(x=50, size=200, prob=0.1, lower.tail=FALSE) = 2.963049e-10
pbinom(x=50, size=200, prob=0.101, lower.tail=FALSE) = 4.191581e-10
pbinom(x=50, size=200, prob=0.102, lower.tail=FALSE) = 5.899028e-10
pbinom(x=50, size=200, prob=0.103, lower.tail=FALSE) = 8.260166e-10
pbinom(x=50, size=200, prob=0.104, lower.tail=FALSE) = 1.150917e-09
pbinom(x=50, size=200, prob=0.105, lower.tail=FALSE) = 1.595829e-09
pbinom(x=50, size=200, prob=0.106, lower.tail=FALSE) = 2.202187e-09
pbinom(x=50, size=200, prob=0.107, lower.tail=FALSE) = 3.024722e-09
pbinom(x=50, size=200, prob=0.108, lower.tail=FALSE) = 4.135395e-09
pbinom(x=50, size=200, prob=0.109, lower.tail=FALSE) = 5.628391e-09
pbinom(x=50, size=200, prob=0.11, lower.tail=FALSE) = 7.626442e-09
pbinom(x=50, size=200, prob=0.111, lower.tail=FALSE) = 1.028878e-08
pbinom(x=50, size=200, prob=0.112, lower.tail=FALSE) = 1.382111e-08
pbinom(x=50, size=200, prob=0.113, lower.tail=FALSE) = 1.848804e-08
pbinom(x=50, size=200, prob=0.114, lower.tail=FALSE) = 2.462857e-08
pbinom(x=50, size=200, prob=0.115, lower.tail=FALSE) = 3.267517e-08
pbinom(x=50, size=200, prob=0.116, lower.tail=FALSE) = 4.317741e-08
pbinom(x=50, size=200, prob=0.117, lower.tail=FALSE) = 5.683084e-08
pbinom(x=50, size=200, prob=0.118, lower.tail=FALSE) = 7.451237e-08
pbinom(x=50, size=200, prob=0.119, lower.tail=FALSE) = 9.732331e-08
pbinom(x=50, size=200, prob=0.12, lower.tail=FALSE) = 1.266415e-07
pbinom(x=50, size=200, prob=0.121, lower.tail=FALSE) = 1.641845e-07
pbinom(x=50, size=200, prob=0.122, lower.tail=FALSE) = 2.120853e-07
pbinom(x=50, size=200, prob=0.123, lower.tail=FALSE) = 2.729831e-07
pbinom(x=50, size=200, prob=0.124, lower.tail=FALSE) = 3.501321e-07
pbinom(x=50, size=200, prob=0.125, lower.tail=FALSE) = 4.475306e-07
pbinom(x=50, size=200, prob=0.126, lower.tail=FALSE) = 5.700739e-07
pbinom(x=50, size=200, prob=0.127, lower.tail=FALSE) = 7.237351e-07
pbinom(x=50, size=200, prob=0.128, lower.tail=FALSE) = 9.157779e-07
pbinom(x=50, size=200, prob=0.129, lower.tail=FALSE) = 1.155006e-06
pbinom(x=50, size=200, prob=0.13, lower.tail=FALSE) = 1.452053e-06
pbinom(x=50, size=200, prob=0.131, lower.tail=FALSE) = 1.819725e-06
pbinom(x=50, size=200, prob=0.132, lower.tail=FALSE) = 2.273389e-06
pbinom(x=50, size=200, prob=0.133, lower.tail=FALSE) = 2.831432e-06
pbinom(x=50, size=200, prob=0.134, lower.tail=FALSE) = 3.515784e-06
pbinom(x=50, size=200, prob=0.135, lower.tail=FALSE) = 4.352516e-06
pbinom(x=50, size=200, prob=0.136, lower.tail=FALSE) = 5.372534e-06
pbinom(x=50, size=200, prob=0.137, lower.tail=FALSE) = 6.612358e-06
pbinom(x=50, size=200, prob=0.138, lower.tail=FALSE) = 8.115017e-06
pbinom(x=50, size=200, prob=0.139, lower.tail=FALSE) = 9.93106e-06
pbinom(x=50, size=200, prob=0.14, lower.tail=FALSE) = 1.211969e-05
pbinom(x=50, size=200, prob=0.141, lower.tail=FALSE) = 1.475007e-05
pbinom(x=50, size=200, prob=0.142, lower.tail=FALSE) = 1.79027e-05
pbinom(x=50, size=200, prob=0.143, lower.tail=FALSE) = 2.167112e-05
pbinom(x=50, size=200, prob=0.144, lower.tail=FALSE) = 2.616362e-05
pbinom(x=50, size=200, prob=0.145, lower.tail=FALSE) = 3.150524e-05
pbinom(x=50, size=200, prob=0.146, lower.tail=FALSE) = 3.784002e-05
pbinom(x=50, size=200, prob=0.147, lower.tail=FALSE) = 4.533335e-05
pbinom(x=50, size=200, prob=0.148, lower.tail=FALSE) = 5.417471e-05
pbinom(x=50, size=200, prob=0.149, lower.tail=FALSE) = 6.458051e-05
pbinom(x=50, size=200, prob=0.15, lower.tail=FALSE) = 7.679736e-05
pbinom(x=50, size=200, prob=0.151, lower.tail=FALSE) = 9.110546e-05
pbinom(x=50, size=200, prob=0.152, lower.tail=FALSE) = 0.0001078224
pbinom(x=50, size=200, prob=0.153, lower.tail=FALSE) = 0.0001273072
pbinom(x=50, size=200, prob=0.154, lower.tail=FALSE) = 0.0001499647
pbinom(x=50, size=200, prob=0.155, lower.tail=FALSE) = 0.0001762501
pbinom(x=50, size=200, prob=0.156, lower.tail=FALSE) = 0.0002066743
pbinom(x=50, size=200, prob=0.157, lower.tail=FALSE) = 0.0002418089
pbinom(x=50, size=200, prob=0.158, lower.tail=FALSE) = 0.000282292
pbinom(x=50, size=200, prob=0.159, lower.tail=FALSE) = 0.0003288341
pbinom(x=50, size=200, prob=0.16, lower.tail=FALSE) = 0.0003822243
pbinom(x=50, size=200, prob=0.161, lower.tail=FALSE) = 0.0004433374
pbinom(x=50, size=200, prob=0.162, lower.tail=FALSE) = 0.0005131399
pbinom(x=50, size=200, prob=0.163, lower.tail=FALSE) = 0.0005926979
pbinom(x=50, size=200, prob=0.164, lower.tail=FALSE) = 0.0006831842
pbinom(x=50, size=200, prob=0.165, lower.tail=FALSE) = 0.0007858856
pbinom(x=50, size=200, prob=0.166, lower.tail=FALSE) = 0.0009022113
pbinom(x=50, size=200, prob=0.167, lower.tail=FALSE) = 0.0010337
pbinom(x=50, size=200, prob=0.168, lower.tail=FALSE) = 0.001182029
pbinom(x=50, size=200, prob=0.169, lower.tail=FALSE) = 0.001349022
pbinom(x=50, size=200, prob=0.17, lower.tail=FALSE) = 0.001536655
pbinom(x=50, size=200, prob=0.171, lower.tail=FALSE) = 0.001747067
pbinom(x=50, size=200, prob=0.172, lower.tail=FALSE) = 0.001982569
pbinom(x=50, size=200, prob=0.173, lower.tail=FALSE) = 0.002245645
pbinom(x=50, size=200, prob=0.174, lower.tail=FALSE) = 0.00253897
pbinom(x=50, size=200, prob=0.175, lower.tail=FALSE) = 0.002865405
pbinom(x=50, size=200, prob=0.176, lower.tail=FALSE) = 0.003228015
pbinom(x=50, size=200, prob=0.177, lower.tail=FALSE) = 0.003630065
pbinom(x=50, size=200, prob=0.178, lower.tail=FALSE) = 0.004075034
pbinom(x=50, size=200, prob=0.179, lower.tail=FALSE) = 0.004566614
pbinom(x=50, size=200, prob=0.18, lower.tail=FALSE) = 0.005108717
pbinom(x=50, size=200, prob=0.181, lower.tail=FALSE) = 0.005705476
pbinom(x=50, size=200, prob=0.182, lower.tail=FALSE) = 0.006361248
pbinom(x=50, size=200, prob=0.183, lower.tail=FALSE) = 0.007080619
pbinom(x=50, size=200, prob=0.184, lower.tail=FALSE) = 0.007868395
pbinom(x=50, size=200, prob=0.185, lower.tail=FALSE) = 0.00872961
pbinom(x=50, size=200, prob=0.186, lower.tail=FALSE) = 0.009669517
pbinom(x=50, size=200, prob=0.187, lower.tail=FALSE) = 0.01069359
pbinom(x=50, size=200, prob=0.188, lower.tail=FALSE) = 0.0118075
pbinom(x=50, size=200, prob=0.189, lower.tail=FALSE) = 0.01301716
pbinom(x=50, size=200, prob=0.19, lower.tail=FALSE) = 0.01432863
pbinom(x=50, size=200, prob=0.191, lower.tail=FALSE) = 0.01574819
pbinom(x=50, size=200, prob=0.192, lower.tail=FALSE) = 0.01728228
pbinom(x=50, size=200, prob=0.193, lower.tail=FALSE) = 0.01893752
pbinom(x=50, size=200, prob=0.194, lower.tail=FALSE) = 0.02072064
pbinom(x=50, size=200, prob=0.195, lower.tail=FALSE) = 0.02263853
pbinom(x=50, size=200, prob=0.196, lower.tail=FALSE) = 0.02469818
pbinom(x=50, size=200, prob=0.197, lower.tail=FALSE) = 0.02690666
pbinom(x=50, size=200, prob=0.198, lower.tail=FALSE) = 0.02927113
pbinom(x=50, size=200, prob=0.199, lower.tail=FALSE) = 0.03179876
pbinom(x=50, size=200, prob=0.2, lower.tail=FALSE) = 0.03449677
pbinom(x=50, size=200, prob=0.201, lower.tail=FALSE) = 0.03737237
pbinom(x=50, size=200, prob=0.202, lower.tail=FALSE) = 0.0404327
pbinom(x=50, size=200, prob=0.203, lower.tail=FALSE) = 0.04368489
pbinom(x=50, size=200, prob=0.204, lower.tail=FALSE) = 0.04713593
pbinom(x=50, size=200, prob=0.205, lower.tail=FALSE) = 0.0507927
pbinom(x=50, size=200, prob=0.206, lower.tail=FALSE) = 0.05466193
pbinom(x=50, size=200, prob=0.207, lower.tail=FALSE) = 0.05875016
pbinom(x=50, size=200, prob=0.208, lower.tail=FALSE) = 0.06306369
pbinom(x=50, size=200, prob=0.209, lower.tail=FALSE) = 0.0676086
pbinom(x=50, size=200, prob=0.21, lower.tail=FALSE) = 0.07239063
pbinom(x=50, size=200, prob=0.211, lower.tail=FALSE) = 0.07741525
pbinom(x=50, size=200, prob=0.212, lower.tail=FALSE) = 0.08268754
pbinom(x=50, size=200, prob=0.213, lower.tail=FALSE) = 0.08821221
pbinom(x=50, size=200, prob=0.214, lower.tail=FALSE) = 0.09399354
pbinom(x=50, size=200, prob=0.215, lower.tail=FALSE) = 0.1000354
pbinom(x=50, size=200, prob=0.216, lower.tail=FALSE) = 0.1063411
pbinom(x=50, size=200, prob=0.217, lower.tail=FALSE) = 0.1129135
pbinom(x=50, size=200, prob=0.218, lower.tail=FALSE) = 0.1197549
pbinom(x=50, size=200, prob=0.219, lower.tail=FALSE) = 0.1268671
pbinom(x=50, size=200, prob=0.22, lower.tail=FALSE) = 0.1342513
pbinom(x=50, size=200, prob=0.221, lower.tail=FALSE) = 0.141908
pbinom(x=50, size=200, prob=0.222, lower.tail=FALSE) = 0.1498372
pbinom(x=50, size=200, prob=0.223, lower.tail=FALSE) = 0.1580383
pbinom(x=50, size=200, prob=0.224, lower.tail=FALSE) = 0.1665098
pbinom(x=50, size=200, prob=0.225, lower.tail=FALSE) = 0.1752498
pbinom(x=50, size=200, prob=0.226, lower.tail=FALSE) = 0.1842556
pbinom(x=50, size=200, prob=0.227, lower.tail=FALSE) = 0.193524
pbinom(x=50, size=200, prob=0.228, lower.tail=FALSE) = 0.2030508

 

많은 도움 되었기를 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡'를 꾸욱 눌러주세요. ^^

 

 

 

728x90
반응형
Posted by Rfriend
,