[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.