유사 난수 생성

R에서의 표본추출

Richie Cotton

Data Evangelist at DataCamp

무작위의 의미는?

{adjective} 방법이나 의식적인 결정 없이 만들어지거나, 이루어지거나, 선택된 것.

  • 옥스퍼드 랭귀지스
R에서의 표본추출

진정한 난수

  • 동전 던지기 같은 물리적 과정에서 생성.
  • Hotbits는 방사성 붕괴를 사용합니다.
  • RANDOM.ORG는 대기 잡음을 사용합니다.
    • R에서는 random 패키지로 사용 가능.
  • 진정한 무작위성은 비용이 큽니다.
1 https://www.fourmilab.ch/hotbits 2 https://www.random.org
R에서의 표본추출

유사 난수 생성

  • 다음 ‘무작위’ 수는 이전 ‘무작위’ 수에서 계산됩니다.
  • 첫 ‘무작위’ 수는 시드에서 계산됩니다.
  • 같은 시드로 시작하면 이후 난수도 같습니다.
seed <- 1
calc_next_random(seed)
3
calc_next_random(3)
2
calc_next_random(2)
6
R에서의 표본추출

난수 생성 함수

function distribution function distribution function distribution
rbeta 베타 rgeom 기하 rsignrank 윌콕슨 부호순위
rbinom 이항 rhyper 초기하 rt t
rcauchy 코시 rlnorm 로그정규 runif 균등
rchisq 카이제곱 rlogis 로지스틱 rweibull 와이블
rexp 지수 rnbinom 음이항 rwilcox 윌콕슨 순위합
rf F rnorm 정규
rgamma 감마 rpois 포아송
R에서의 표본추출

난수 시각화

rbeta(5000, shape1 = 2, shape2 = 2)
[1] 0.2788 0.7495 0.6485 0.6665 0.6546 0.1575
...

[4996] 0.84719 0.35177 0.92796 0.67603 0.53960
randoms <- data.frame(
  beta = rbeta(5000, shape1 = 2, shape2 = 2)
)
ggplot(randoms, aes(beta)) +
  geom_histogram(binwidth = 0.1)

베타 분포 히스토그램

R에서의 표본추출

난수 시드

set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
R에서의 표본추출

다른 시드 사용하기

set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
set.seed(20041004)
rnorm(5)
-0.6547 -0.7854 -0.0152  0.1514  0.5285
rnorm(5)
0.748  0.974  0.174 -0.781 -0.930
R에서의 표본추출

연습해 봅시다!

R에서의 표본추출

Preparing Video For Download...