생각 작업실 The atelier of thinking

47. R을 이용한 확률분포 - 포아송 분포 구하기 본문

통계학 이야기

47. R을 이용한 확률분포 - 포아송 분포 구하기

knowledge-seeker 2023. 10. 30. 11:11

Chapter 47. R을 이용한 확률분포 - 포아송 분포 

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. 포아송분포(Poission Distribution)

포아송분포는 단위시간 동안 혹은 단위공간에서 어떤 사건이 발생하는 횟수를 나타내는 이산확률분포입니다.

 

포아송분포의 확률질량함수는 다음과 같습니다.

 

$$ f(x) = \frac{e^{- \lambda} \lambda^x}{x!} , x = 0,1,2,... $$

 

R에서 포아송분포의 확률질량함수를 구하는 함수는 "dpois" 입니다.

 

dpois(x, lambda)

 x : 포아송분포의 확률변수 값
 lambda : 포아송분포의 모수인 평균과 분산이 되는 값

◈ 예제 : $ \lambda = 3 $ 일 때

 

 (1) $ P(X=2) = ? $

 

lambda <- 3
x <- 2
dpois(x,lambda)
[1] 0.2240418

 

(2) 확률변수가 0~20까지의 포아송 확률질량함수 그래프

lambda <- 3
x <- 0:20
pois <- dpois(x,lambda)
names(pois)<-x
barplot(pois,space=10,col='skyblue',xlab="x",ylab="f(x)")
abline(h=0)

위 그래프에서보면 9~10 이후에는 0에 가깝습니다.

 $ \lambda=3 $ , 즉 평균과 분산이 3인 포아송분포에서 10이 나올 확률은 0에 가깝다는 의미입니다.

 

 각 확률변수의 확률을 숫자로 나타내면,

round(pois[0:14],4)
     0      1      2      3      4      5      6      7      8      9     10     11 
0.0498 0.1494 0.2240 0.2240 0.1680 0.1008 0.0504 0.0216 0.0081 0.0027 0.0008 0.0002 
    12     13 
0.0001 0.0000 

13에 이르러서는 소숫점 4자리 미만의 확률을 보이고 있습니다.

 

3. 이항분포와 포아송분포

 

◈ 예제 : 반도체 생산공정

 평균 500개 중 한 개 정도가 불량품이었고 무작위로 발생한다고 했을 때,

 제작된 1500개 반도체 중 불량품이 2개 이하일 확률은 ?

 

 (1) 이항분포

 

 위 경우를 이항분포로 표현하면, $ X \backsim B(1500,1/500) $ 일 때 $ P(X \leq 2) $ ?

 p = 1/500 , n = 1500 , X : 1500 개 반도체 중 불량품 수

 

$$ P(X \leq 2) = \sum_{x=0}^2 \binom{1500}{x}(\frac{1}{500})^x(\frac{499}{500})^{1500-x} = 0.4230 $$

 

위 식을 R코드로 구하면,

x <- 2
n <- 1500
p <- 1/500

pbinom(x,n,p)
[1] 0.4229658

(2) 포아송분포

 

 위 경우를 포아송분포로 표현하면, $ \lambda = np = 1500 \times 1/500 = 3 $ 이므로 $ X \backsim Pois(3) $

 

$$ P(X \leq 2) = \sum_{x=0}^2 \frac{e^{-3} 3^x}{x!} = 0.4232 $$

 

위 식을 R 코드로 구하면,

Lambda <- 3
x <- 2
ppois(x,Lambda)
[1] 0.4231901

 

포아송분포의 누적분포함수는 'ppois' 입니다.

 

ppois(x,lambda, lower.tail = TRUE)

 lower.tail : 누적분포함수의 계산방향
              TRUE : x이하의 값에 대한 확률을 계산
              FALSE : x초과의 값에 대한 확률을 계산