연속형 확률분포 (Continuous probability distribution)에는
: norm()
- 균등분포 (uniform distribution)
: unif()
- 지수분포 (exponential distribution)
: exp()
: t()
: f()
: chisq()
등이 있습니다.
이번 포스팅에서는 균등분포(uniform distribution)에 대해서 알아보겠습니다. 균등분포(uniform distribution)은 연속형 확률 분포 중에서 가장 간단한 형태로서, 구간 [mi=a, max=b]에서 값이 균등하게 퍼져 있는 집단, 일어날 확률이 균등한 분포를 말합니다.
가령, 김포공항에서 제주도 공항까지 비행기로 이륙에서 착륙까지 걸리는 총 비행시간이 1시간~1시간5분 사이라고 하면, 0시~59분59초까지는 비행기가 도착할 확률이 0, 1시간~1시간5분 사이에 도착할 확률은 1, 1시간 5분 이후는 다시 확률이 0이 되는 균등분포를 따른다고 할 수 있겠습니다.
R에서 사용하는 균등분포 함수(uniform distribution function) 및 파라미터(parameter)들은 아래와 같으며, 필요한 함수, 파라미터를 가져다 사용하면 되겠습니다.
함수 구분 |
균등분포 함수/파라미더 | |
unif() | ||
밀도함수 (density function) |
d |
dunif(x, min, max) |
누적분포함수 (cumulative distribution function) |
p |
punif(q, min, max, lower.tail=TRUE/FALSE) |
분위수 함수 (quantile function) |
q |
qunif(p, min, max, lower.tail=TRUE/FALSE) |
난수 발생 (random number generation) |
r |
runif(n, min, max) |
(1) 균등분포 그래프(uniform distribution plot) : fun = dunif
ggplot2의 fun= dunif() 함수를 사용해서 균등분포를 그래프로 그려보면 아래와 같이 특정 구간 [a, b]에서 확률이 균등함을 알 수 있습니다.
|
(2) 누적 균등분포 그래프(cumulative uniform distribution plot) : fun = punif
누적 균등분포 그래프를 그려보면 아래와 같습니다.
|
(3) 누적 균등분포 함수의 확률 값 계산 : punif()
> # Uniform Distribution of (min=1, max=10), x from 0 to 3"
|
(4) 균등분포 분위수 함수 값 계산 : qunif(p, min, max, lower.tail=TRUE/FALSE)
이전 포스팅의 정규분포와는 함수는 qunif()로 동일하지만 괄호 안의 parameter 들은 다릅니다.
(참고: 정규분포에서는 qunif(p, mean, sd, lower.tail=T/F)
> # (4) 분위수 함수 : qunif(p, min, max, lower.tail=TRUE/FALSE) > qunif(0.3, min=0, max=10, lower.tail = TRUE) [1] 3
|
(5) 난수 발생 : runif(n, min, max)
난수는 매번 실행할 때마다 바뀌므로 제가 아래에 제시한 것과는 다른 숫자, 다른 그래프가 그려질 것입니다만, 형태는 균등분포를 띠는 유사한 모양이 될 것입니다.
> ru_100 <- runif(n=100, min=0, max = 10) > ru_100
[1] 7.33957568 2.78596723 6.30797744 5.01438337 6.57949706 5.90883342 3.51446293 9.28736811 [9] 9.55213668 5.59377524 4.71003185 3.29525512 0.25759555 9.40326151 6.56466466 2.44973803 [17] 4.88714900 3.10710648 3.84375758 8.55017741 3.09487276 0.13411621 0.44285713 8.90632265 [25] 0.07968823 5.03465390 4.64601169 1.23565062 4.81310463 1.59225023 7.03799510 0.68870704 [33] 4.03014086 9.97756283 5.55815726 2.01819345 7.00497545 8.50399118 2.29608430 2.92359120 [41] 0.85656712 6.52544881 6.37193951 6.15247601 5.29502105 7.68988134 6.37691223 0.37387705 [49] 6.89023959 1.65049129 3.75195268 7.97220092 6.50160025 9.52491436 1.70569894 9.80475205 [57] 0.24770673 8.47412000 4.66718922 2.52269224 2.81985175 8.79845402 6.03852213 8.10848875 [65] 1.10510449 9.35548906 1.83535387 0.47889795 6.54578585 1.61742080 4.51840400 3.99912651 [73] 4.82545376 4.04589108 0.71750065 7.56085867 1.22887762 2.97822070 5.14541682 3.59126885 [81] 5.00911758 1.02152702 7.78324707 4.69437196 1.13090493 3.70933500 0.03173870 5.74159309 [89] 2.68879279 3.36398725 9.34593590 6.18818473 9.43490689 5.82578697 4.49576854 2.90029081 [97] 3.34726356 7.19013351 9.97276521 9.39421932
> abline(h=0.1, lty=3, lwd=3, col="red")
|
많은 도움 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡'를 꾸욱 눌러주세요. ^^
'R 분석과 프로그래밍 > R 통계분석' 카테고리의 다른 글
R t-분포 (Student’s t-distribution) : t() (0) | 2015.09.24 |
---|---|
R 지수분포 (exponential distribution) : exp() (6) | 2015.09.22 |
R 정규분포(Normal distribution) : norm() (0) | 2015.09.16 |
R 포아송 분포 (Poisson distribution) : pois() (7) | 2015.09.15 |
R 초기하분포 (Hypergeometric distribution) : dhyper(x, m, n, k) (0) | 2015.09.13 |