대부분의 통계 방법은 자료가 정규분포라는 가정하에 계산을 한다. 만약 어떤 표본이 정규분포라는 가정을 할 수 있다면 여러가지 통계방법을 적용할 수 있어 편리하다.
모집단에서 추출되는 샘플들의 갯수가 충분히 많고, 각 샘플링 될때 마다의 합 또는 평균을 구해서 그에 대한 분포를 그려보면 정규본포 곡선과 비슷해진다. 이것을 중심극한정리 라고 한다.
여기에서 중요한 점은 샘플링 될 때의 샘플들 갯수가 중요하다.
예를 들어, 한 반의 학생이 60명인데 국어 시험을 보았다. 시험은 20점 만점이다. 2명에게 무작위로 점수를 물어보고 평균을 낸 다음, 이와 같은 행위를 1000번 정도 하면 표본의 평균이 1000개가 생기게 된다. 이 1000번에 대한 분포를 히스토그램으로 보면 평균에 해당하는 히스토그램 막대가 가장 높이 나타난다. 그리고 정규분포와 같은 종모양의 분포가 보여진다.
샘플링: 모집단에서 일정한 갯수의 샘플을 추출하는 행위
샘플 사이즈를 커지면, 표본평균에 대한 분산의 크기는 작아진다.
my_simulation <- function (score, S1, S2) {
y <- NULL
y <- sapply(1:S2, function(i) mean(sample(score, S1, replace = TRUE)))
mean(y)
sd(y)
hist(y, main=paste0("sample 수: ", S1, ", sampling 수: ", S2))
}
set.seed(1234)
N <- 60
score <- sample(1:20, N, replace=TRUE)
score
## [1] 16 5 12 15 9 5 6 16 4 2 7 6 15 14 20 14 4 4 8 20 3 4 5 2 15
## [26] 8 20 16 12 3 9 19 4 8 10 11 2 15 17 6 19 6 17 17 8 17 8 10 15 3
## [51] 9 16 3 10 13 3 19 18 6 20
# 모집단에 대한 평균과 분포를 확인한다.
mean(score)
## [1] 10.46667
sd(score)
## [1] 5.84102
hist(score)
# 1명을 복원추출로 뽑아서 평균을 계산하고, 이를 1000번 반복한다.
S1 <- 1
S2 <- 1000
my_simulation(score, S1, S2)
# 2명을 복원추출로 뽑아서 평균을 계산하고, 이를 1000번 반복한다.
S1 <- 2
S2 <- 1000
my_simulation(score, S1, S2)
# 2명을 복원추출로 뽑아서 평균을 계산하고, 이를 5000번 반복한다.
S1 <- 2
S2 <- 5000
my_simulation(score, S1, S2)
이번에는 30명을 복원추출로 뽑아서 평균을 계산하고, 이를 1000번 반복한다.
S1 <- 30
S2 <- 1000
my_simulation(score, S1, S2)