[R] 난수생성과 기초통계량

반응형

1. 난수생성

  • R에서는 주어진 통계 분포를 따르는 난수를 발생시키는 다양한 함수를 제공합니다.
  • 이 함수들의 특징은 난수(random)를 뜻하는 r 뒤에 분포명의 축약형을 붙인 형태 입니다.
  • 아래는 주요 분포에 대한 난수 발생 함수를 정리한 것 입니다.
    • 이항분포: rbinom
    • F-분포: rf
    • 기하분포: rgeom
    • 초기하분포: rhyper
    • 음이항분포: rnbinom
    • 정규분포: rnorm
    • 포아송분포: rpois
    • t-분포: rt
    • 균일분포: runif
  • 이러한 함수들에 대한 구체적인 argument는 ?help를 참고하시는 것이 편하실 것 같아서 따로 언급은 하지 않겠습니다.

 

  • 대표적인 예시로 표준정규분포를 따르는 난수 10개를 생성한 결과는 아래와 같습니다.
rnorm(n = 10, mean = 0, sd = 1) # 평균이 0이고 표준편차가 1인 난수 10개 생성
##  [1]  0.9148051 -1.3904200 -0.3019703  1.2037863 -1.2570644  0.7649175
##  [7]  0.1425490  1.0035441 -0.5783813 -0.1007463

 

  • 여러 난수들을 만들고 이 난수들의 실제 분포를 확인하기 위해서는 내장함수인 density() 함수를 사용하여
    밀도함수분포를 확인해보실 수 있습니다.
plot(
  density(
    rnorm(
      n = 10, 
      mean = 0, 
      sd = 1
    )
  )
)

 

  • 이 밖에도 확률밀도함수 또는 확률질량함수는 d 뒤에 분포명을 적으시면 됩니다.
  • 분포함수는 p, 분위수는 q 뒤에 분포명을 적습니다.
dnorm(
  x = c(1, 2, 3), 
  mean = 0, 
  sd = 1, 
  log = FALSE
)
## [1] 0.241970725 0.053990967 0.004431848
pnorm(
  q = 0.5, 
  mean = 0, 
  sd = 1, 
  log.p = FALSE
)
## [1] 0.6914625
qnorm(
  p = 0.9, 
  mean = 0, 
  sd = 1, 
  log.p = FALSE
)
## [1] 1.281552





2. 기초통계량

  • 이번에는 데이터의 가장 기본적인 특징을 알려주는 기초 통계량을 계산하는 방법에 대해서 말씀드리겠습니다.
  • 여기서 말하는 기초 통계량은 표본평균, 표본분산, 표본표준편차, 다섯 수치 요약, 최빈값 등입니다.

2. 1. 표본평균

  • 표본평균을 구하는 함수는 mean() 입니다.
  • 함수의 arguments는 아래와 같습니다.
    • x: 표본
    • trim: 절사평균을 구할 때 쓰이는 argument로 데이터를 크기 순서로 나열한 뒤 양 극단에서 몇 퍼센트의 비율로 제거할지를 설정
    • na.rm = FALSE: 이 논리값을 TRUE로 할 경우 표본 안에 있는 결측치를 제거한 후에 계산
mean(
  x,
  trim = 0,
  na.rm = FALSE
)
x <- c(rnorm(n = 10, mean = 0, sd = 1), NA, NA)
mean(x)
## [1] NA
mean(x, na.rm = TRUE)
## [1] 0.3872865
mean(x, trim = 0.3)
## [1] NA



2. 2. 표본분산

  • 표본분산을 구하는 함수는 var() 입니다.
var(
  x,
  na.rm = FALSE
)
var(x, na.rm = TRUE)
## [1] 1.043438



2. 3. 표본표준편차

  • 표본표준편차를 구하는 함수는 sd() 입니다.
  • 표본표준편차는 표본분산의 양의 제곱근을 의미합니다.
sd(
  x,
  na.rm = FALSE
)
sd(x, na.rm = TRUE)
## [1] 1.021488
sqrt(var(x, na.rm = TRUE))
## [1] 1.021488



2. 4. 다섯개의 수치 요약

  • 다섯개의 수치 요약은 데이터를 최소값, 제1사분위수, 중앙값, 제3사분위수, 최대값으로 요약합니다.
  • 함수는 fivenum() 함수를 이용하며 summary() 함수 역시 fivenum() 함수와 유사하나 평균까지 추가된 계산을 해줍니다.
fivenum(x)
## [1] -0.9815888 -0.7813623  0.5788831  1.5071556  1.7123085
summary(x)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -0.9816 -0.6197  0.5789  0.3873  1.2948  1.7123       2



2. 5. 최빈값

  • 최빈값은 데이터에서 가장 자주 나타난 빈도가 높은 값을 말합니다.
  • 최빈값은 table() 함수를 사용해 각 데이터가 출현한 횟수를 출력하는 분할표를 만들고,
    which.max() 함수를 사용해 최대 빈도가 저장된 index를 찾는 방법으로 구할 수 있습니다.
y <- factor(c("a", "b", "c", "c", "c", "d", "d"))
y
## [1] a b c c c d d
## Levels: a b c d
table(y)
## y
## a b c d 
## 1 1 3 2
index <- which.max(table(y))
index
## c 
## 3
반응형

'Basic' 카테고리의 다른 글

[R] 적합도 검정  (0) 2017.07.04
[R] 범주형 자료에서 독립성 검정  (0) 2017.07.04
[R] 표본 추출  (0) 2017.07.03
[R] 기본 plot 함수  (1) 2017.07.03
[R] 데이터 불러오기  (0) 2017.07.02
TAGS.

Comments