자료(표본)을 수집하여 분석하는 것이 통계라면 표본추출은 통계 작업의 시작이며, 표본이 어떻게 추출되었느냐에 따라 그 분석 방법이 달라진다. 가장 기본적인 단순확률추출 이외에 자료의 효율성을 높이기 위하여(분산을 작게 하기 위하여) 또는 경비 절감이나 편의성을 이유로 층화추출, 집락추출, 계통추출 방법등을 이용한다. 자료를 통하여 얻은 평균, 비율, 분산값 등을 통계량이라고 하고, 이들의 분포를 표집분포라고 한다. 표집분포는 추정과 검정의 근간이 된다.
주어진 표본수로부터 동일한 확률로 뽑는 추출방법을 단순확률추출(simple random sampling)이라고 하고, 여기서 단순(simple) 이라 함은 등확률(equal probability)의 개념으로 이해하면 될 것이다. 단순 확률 추출에는 복원추출(Sampling with replacement)와 비복원추출(Sampling without replacement)가 있다.
x <- c(1:100)
sample(x,size = 10,replace = FALSE)
## [1] 88 84 48 44 77 24 21 80 11 41
# replace = FALSE : 이 논리값을 TRUE로 할 경우 복원추출을 시행
sample(x, size =10, replace =TRUE)
## [1] 8 7 60 52 69 26 13 82 39 7
추가로 가중치를 고려한 표본 추출을 하고 싶은 경우에는 Prob argumenr를 이용하면 된다.
sample(x,size =10, prob = 1:100)
## [1] 62 72 99 70 82 63 39 94 68 84
전체 모집단을 몇 개의 부차 모집단으로 나눈 후 각 부차 모집단에서 독립적으로 표본을 추출하는 방법을 의미한다. 각 부차 모집단을 층(strata) 라고 하고, 여기서 독립적이라는 표현은 어느 한 층에서 표본을 뽑는 결과가 다른 층의 표본추출에 영향을 미치지 않는다는 뜻이다. 각 층 내에서 동질적이고 유사한 개체들로 묶이도록 각 층을 형성하는 경우에는, 층화추출이 단순확률추출보다 더 효율적인 추출이 된다.
library(sampling)
m <- strata(data =iris, stratanames = "Species", size =c(3,3,3), method = "srswor")
sampling_data1 <- getdata(iris,m)
sampling_data1
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ID_unit
## 21 5.4 3.4 1.7 0.2 setosa 21
## 29 5.2 3.4 1.4 0.2 setosa 29
## 36 5.0 3.2 1.2 0.2 setosa 36
## 64 6.1 2.9 4.7 1.4 versicolor 64
## 91 5.5 2.6 4.4 1.2 versicolor 91
## 93 5.8 2.6 4.0 1.2 versicolor 93
## 123 7.7 2.8 6.7 2.0 virginica 123
## 139 6.0 3.0 4.8 1.8 virginica 139
## 146 6.7 3.0 5.2 2.3 virginica 146
## Prob Stratum
## 21 0.06 1
## 29 0.06 1
## 36 0.06 1
## 64 0.06 2
## 91 0.06 2
## 93 0.06 2
## 123 0.06 3
## 139 0.06 3
## 146 0.06 3
# data : 데이터 프레임 또는 행렬
# stratanames : 층화추출에 사용될 변수들
# size : 각 층의 크기
# method ; “srswor” 비복원 단순임의추출, “srswr” 복원 단순임의추출, “poisson” 포아송 추출, “systematic” 계통 추출
# pik : 각 데이터를 표본에 포함할 확률
# description = FALSE : 이 논리값이 TRUE이면 표본의 크기와 모집단의 크기를 출력합니다.
계통추출이란 추출간격(표집간격, sampling interval) k를 정하여 매 k번째가 되는 단위들을 표본으로 선정하는 방법을 말한다. 모집단 전체에서 골고루 표본이 추출되는 장점이 있다.
library(doBy)
sampling_data2 <-sampleBy(formula = ~Species,
frac = 0.3,
data = iris,
systematic = TRUE)
sampling_data2
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## setosa.1 5.1 3.5 1.4 0.2 setosa
## setosa.4 4.6 3.1 1.5 0.2 setosa
## setosa.7 4.6 3.4 1.4 0.3 setosa
## setosa.11 5.4 3.7 1.5 0.2 setosa
## setosa.14 4.3 3.0 1.1 0.1 setosa
## setosa.17 5.4 3.9 1.3 0.4 setosa
## setosa.21 5.4 3.4 1.7 0.2 setosa
## setosa.24 5.1 3.3 1.7 0.5 setosa
## setosa.27 5.0 3.4 1.6 0.4 setosa
## setosa.31 4.8 3.1 1.6 0.2 setosa
## setosa.34 5.5 4.2 1.4 0.2 setosa
## setosa.37 5.5 3.5 1.3 0.2 setosa
## setosa.41 5.0 3.5 1.3 0.3 setosa
## setosa.44 5.0 3.5 1.6 0.6 setosa
## setosa.47 5.1 3.8 1.6 0.2 setosa
## versicolor.51 7.0 3.2 4.7 1.4 versicolor
## versicolor.54 5.5 2.3 4.0 1.3 versicolor
## versicolor.57 6.3 3.3 4.7 1.6 versicolor
## versicolor.61 5.0 2.0 3.5 1.0 versicolor
## versicolor.64 6.1 2.9 4.7 1.4 versicolor
## versicolor.67 5.6 3.0 4.5 1.5 versicolor
## versicolor.71 5.9 3.2 4.8 1.8 versicolor
## versicolor.74 6.1 2.8 4.7 1.2 versicolor
## versicolor.77 6.8 2.8 4.8 1.4 versicolor
## versicolor.81 5.5 2.4 3.8 1.1 versicolor
## versicolor.84 6.0 2.7 5.1 1.6 versicolor
## versicolor.87 6.7 3.1 4.7 1.5 versicolor
## versicolor.91 5.5 2.6 4.4 1.2 versicolor
## versicolor.94 5.0 2.3 3.3 1.0 versicolor
## versicolor.97 5.7 2.9 4.2 1.3 versicolor
## virginica.101 6.3 3.3 6.0 2.5 virginica
## virginica.104 6.3 2.9 5.6 1.8 virginica
## virginica.107 4.9 2.5 4.5 1.7 virginica
## virginica.111 6.5 3.2 5.1 2.0 virginica
## virginica.114 5.7 2.5 5.0 2.0 virginica
## virginica.117 6.5 3.0 5.5 1.8 virginica
## virginica.121 6.9 3.2 5.7 2.3 virginica
## virginica.124 6.3 2.7 4.9 1.8 virginica
## virginica.127 6.2 2.8 4.8 1.8 virginica
## virginica.131 7.4 2.8 6.1 1.9 virginica
## virginica.134 6.3 2.8 5.1 1.5 virginica
## virginica.137 6.3 3.4 5.6 2.4 virginica
## virginica.141 6.7 3.1 5.6 2.4 virginica
## virginica.144 6.8 3.2 5.9 2.3 virginica
## virginica.147 6.3 2.5 5.0 1.9 virginica