생각 작업실 The atelier of thinking

51. R을 이용한 확률분포 - 다항분포 구하기 본문

통계학 이야기

51. R을 이용한 확률분포 - 다항분포 구하기

knowledge-seeker 2023. 11. 3. 18:44

Chapter 51. 다항분포 구하기

 

1. R 에서의 확률분포

 

이산확률분포 연속확률분포
이항분포 binom 정규분포 norm
초기하분포 hyper T분포 t
포아송분포 pois F분포 f
기하분포 geom 카이분포 chisq
음이항분포 nbionom 균등분포 unif
다항분포 multinom 지수분포 exp

구하고자 하는 함수에 따라 아래의 접두사를 붙여 사용하면 됩니다.

  • d : probability mass/density function - 확률 질량/밀도 함수
  • p : cumulative distribution function - 누적함수
  • q : quantile function - 분위수
  • r : random number generator - 램덤 생성 작업

 

2. 다항분포(Multinomial Distribution)

 

다항분포는 여러 개의 값이 가질 수 있는 독립확률변수들에 대한 확률분포로, 여러 번의 독립적 시행에서 각각의 값이 특정 횟수가 나타날 확률을 정의합니다.

 

(1) 확률질량함수

 

다항분포의 확률질량함수는 아래와 같습니다.

 

$$ f(x_1,x_2,..., x_k) = \frac{n!}{x_1 !x_2!... x_k!} p_1^{x_1} p_2^{x_2}... p_k^{x_k} $$

 

 

R에서 다항분포의 확률질량함수는 'dmultinom' 을 이용해서 구할 수 있습니다.

 

dmultinom(x, n, prob)

 x : 특정 관측값 벡터
 size : 시도횟수 위 x의 합이며, 생략가능합니다.
 prob : 각각의 사건이 발생할 확률 벡터 x 벡터와 같은 수를 가져야 합니다.

 

◈ 예제 : 멘델의 유전법칙

 

멘델의 유전법칙은 주로 완두콩의 특성을 연구하여 얻은 결과 중 독립의 법칙은 두 개이상의 다른 특성을 가진 유전자를 동시에 고려할 때 유효합니다. 한 특성을 결정하는 유전자의 형태가 다른 특성을 결정하는 유전자의 형태와 독립적으로 조합된다는 것입니다.

 

완두의 껍질모양(R,r). 색깔(Y,y)

 RRYY, rryy 인 완두 교배 1대를 자기수분시킨 2대의 발현비율은,

 RY : Ry : rY : ry = 9 : 3: 3: 1 을 이룬다는 것이 멘델의 주장이었습니다.

 

독립적으로 100개의 2대를 얻었을 때, (RY,Ry,ry,ry)에 속한 완두의 수를 ( 60,15,15,10) 라고 한다면, 이를 확률질량함수는 ?

 

x <- c(60,15,15,10)
p <- c(9/16,3/16,3/16,1/16)
dmultinom(x,prob = p)
[1] 0.0002589742

 

x <- c(60,15,15,10)
p <- c(9,3,3,1)
dmultinom(x,size = 100  ,prob = p)

 

 prob 를 확률형태가 아니라 정수형태로 입력을 해도 같은 결과가 나옵니다.

 

 

(2) 랜덤 함수 - 

rmultinom( )

 

rmultinom(n, size, prob)

 n : 시행횟수

 

◈ 시뮬레이션 : 상자에서 공 뽑기

 

어떤 상자에서 빨간공을 뽑을 확률이 0.3, 파란공을 뽑을 확률이 0.4, 초록공을 뽑을 확률이 0.3이라 할 때, 상자에서 공을 20번 뽑는 실험을 했을 때 빨간공이 5번, 파란공이 6번,초록공이 9번 뽑힐 확률은 ? 

n <- 20
p <- c(0.3,0.4,0.3)
x <- c(5,6,9)
n == sum(x)
dmultinom(x,prob=p)
[1] 0.01520216

 

위 실험을 각 색깔의 공이 뽑힐 개수를 시뮬레이션 50회하는 코드는 아래와 같습니다.

rmultinom(50,size = n,prob=p)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[1,]    7    6    6   11    9    4    2    9    7     7     4     6     5     3
[2,]    6    8    8    4    5    7    9    6    7     8    13     8     8    11
[3,]    7    6    6    5    6    9    9    5    6     5     3     6     7     6
     [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27]
[1,]     3     8     7     7     5    10     4     7     4     9     4     7     6
[2,]    12     5     7     5    10     5     8     8    14     3     7     8     7
[3,]     5     7     6     8     5     5     8     5     2     8     9     5     7
     [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37] [,38] [,39] [,40]
[1,]     6     4     7     4     8     7     8     6     8     5     6     6     6
[2,]     7    11     6     7     4     8     8     7    11     5     5     7     9
[3,]     7     5     7     9     8     5     4     7     1    10     9     7     5
     [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49] [,50]
[1,]     6     7     4     9     7     3     7     9     8     4
[2,]     7     8     9     8     5     9     9     5     6     7
[3,]     7     5     7     3     8     8     4     6     6     9

 

 

(3) 상관계수

 

 위 실험에서 빨간색 공과 파란색 공간의 상관계수를 구해보면,

 

 수식을 이용해 구하면,

-sqrt(0.3/0.7 * 0.4/0.6)
[1] -0.5345225

 

 랜덤함수를 이용하면,

x <- rmultinom(1000,size = n,prob=p)
x1 <- x[1,]
x2 <- x[2,]
cor(x1,x2)
[1] -0.5765371

 

랜덤실험으로 나온 값이 수식으로 구한 값과 거의 비슷하게 나오는 것을 알 수 있습니다.