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 |