본문 바로가기

R/R을 이용한 데이터 처리&분석 실무

난수 생성 및 분포 함수

반응형

R은 주어진 통계 분포를 따르는 난수를 발생시키는 다양한 함수를 제공한다. 이 함수들은 난수(random)를 뜻하는 r 뒤에 분포명을 붙인 형태이다. 아래는 이항분포, F분포, 기하분포 등 주요 분포에 대한 함수를 정리했다. 전체목록은 도움말 help("distributions")로 볼 수 있다.

확률 분포 난수 발생 함수
이항(Binomial)분포 rbinom
F 분포 rf
기하(Geometric)분포 rgeom
초기하(Hypergeometric)분포 rhyper
음 이항(Negative Binomial)분포 rmbinom
정규(Normal)분포 rnorm
포아송(Poisson)분포 rpois
t분포 rt
연속 균등IUniform)분포 runif

 

이 함수들의 인자는 원하는 난수의 개수와 각 확률 분포의 파라미터다. 예를 들어, 정규 분포는 평균과 표준편차를 인자로 받는다. 다음은 평균 0, 표준 편차 10인 정규 분포로부터 난수 100개를 뽑는 예다.

>rnorm(100,0,10)
[1]6.35522264   -15.91675609   0.11219825   2.81311412   9.94825134
...
[96] -4.70195484   12.33659335   -15.98517300   -12.91536521

 

많은 수의 난수를 만들고 밀도 그림을 그려보면 데이터가 정규 분포를 잘 따르고 있음을 볼 수 있다.

>plot(density(rnorm(1000000,0,10)))

 

확률 밀도 함수(Probability Density Function) 또는 확률 질량 함수(Probability Mass Function)는 d 뒤에 분포명을 적는다. 예를 들어, 정규 분포의 경우 dnorm()을 사용한다.

 

분포 함수(Distribution Function)는 p뒤에 분포명을 적은 형태다. 에를 들어, 정규 분포의 분포 함수는 pnorm()이다.

 

분위수(Quantile)는 q 뒤에 분포명을 적으며, 정규 분포의 경우 qnorm()으로 구한다. qnorm()이 pnorm()의 역함수에 해당하는데, p와 q가 알파벳에서 연속된 문자임을 상기하면 기억하기 쉽다.

 

위 세 가지 함수와 난수 발생 함수를 아래에 정리했다.

 

확률 분포 난수 확률 밀도 함수 분포 함수 분위수 함수
이항 분포 rbinom dbinom pbinom qnbinom
F분포 rf df pf qf
기하 분포 rgeom dgeom pgeom qgeom
초기하 분포 rhyper dhyper phyper qhyper
음 이항 분포 rnbinom dnbinom pnbinom qnbinom
정규 분포 rnorm dnorm pnorm qnorm
포아송 분포 rpois dpois ppois qpois
t 분포 rt dt pt qt
연속 균등 분포 runif dunif punif qunif

 

이 함수들을 실제 코드로 연습해보자. 포아송 분포의 확률 질량 함수(Probability Mass Function)는 다음과 같다.

λ=1일 때 f(3; 1)을 구해보자.

> dpois(3, 1)
[1] 0.06131324
> (1^3 * exp(-1)) / (factorial(3))
[1] 0.06131324

 

실행 결과 dpois()에서 구한 값과 수식으로 구한 값이 일치했다.

다음으로 N(0, 1)의 정규 분포에서 누적 분포 F(0) 그리고 50%에 대한 분위 수 F^(-1)(0.5)를 구해보자.

 

> pnorm(0)
[1] 0.5
> qnorm(0.5)
[1] 0

 

 

R을 이용한 데이터 처리&분석 실무 中

반응형

'R > R을 이용한 데이터 처리&분석 실무' 카테고리의 다른 글

표본 추출  (0) 2020.02.05
기초 통계량  (0) 2020.02.04
코드 수행 시간 측정  (0) 2020.02.03
데이터 구조의 변형과 요약  (0) 2020.02.03
데이터 정렬  (0) 2020.02.03