이번편에서는 R로 실제 중심극한정리가 어떻게 구현되는지 포스팅하고자 한다.
1. 유니폼 분포에서 중심극한 정리 확인하기
10000개의 유니폼 분포를 따르는 자료에서 5개의 표본을 10000개 뽑아서 그 평균에 대한 분포를 확인해보자.
0에서 10까지 유니폼 분포를 따르는 자료를 하나 생성하여 히스토그램을 그려본다
hist(runif(10000)*10, main = "")
means 변수에 10000개의 숫자 공간을 입력한 후 해당 변수에 5개 표본의 평균 값을 적재한 후 means 변수의 히스토그램을 그린다.
means 변수는 평균을 기준으로 종 모양의 정규분포 형태를 띄는 것을 알 수 있다.
means <- numeric(10000)
for(i in 1:10000){
means[i] <- mean(runif(5)*10)
}
hist(means, ylim = c(0,1600))
실제로 정규분포하는지 QQ plot을 그려보면 정규 분포에 근사함을 알 수 있다.
qqnorm(means); qqline(means)
2. 표본 수에 따른 분포 변화 확인
이번에는 표본 수에 따라 표본 분포가 어떻게 변화하는지 확인해보자.
1에서 5000 사이의 수를 가지는 임의의 수 1000개를 추출하여 모집단을 만들었다.
그 후 samp_mean에 5개의 표본의 평균값을 1000회 추출하여 히스토그램을 그렸다.
다소 투박한 정규 분포가 그려지는 것을 확인 할 수 있다. (2000 ~ 3000 사이에 가장 많은 표본 평균 데이터가 존재한다)
sample_data <- data.frame(sample(1:5000,1000))
hist(sample_data$sample)
samp_mean <- NA
for (i in 1:1000) {
samp_mean[i] <- mean(sample_data[sample(nrow(sample_data),5),])
i+1
}
hist(samp_mean)
이번엔 100개씩 표본을 뽑아서 1000번 표집한 후 평균값에 대한 히스토그램을 그려보았다.
위의 케이스보다는 보다 촘촘한 정규분포 형태를 확인할 수 있다. (2400 ~ 2600 사이에 가장 많은 표본 평균 데이터가 존재한다)
samp_mean_100 <- NA
for (i in 1:1000) {
samp_mean_100[i] <- mean(sample_data[sample(nrow(sample_data),100),])
i+1
}
hist(samp_mean_100)
Takeaways
-
참고자료
1. 마이클 크롤리, THE R BOOK 2nd edition, 에이콘, 359~360p
2. 피터 브루스, 앤드루 브루스, 데이터 과학을 위한 통계, 한빛미디어, 76~77p
'통계 | 데이터과학 | R' 카테고리의 다른 글
8. p-value (유의확률) (0) | 2020.06.17 |
---|---|
7. 모수에 대한 구간추정과 가설검정 (3) (0) | 2020.05.18 |
7. 모수에 대한 구간추정과 가설검정 (2) (0) | 2020.05.16 |
7. 모수에 대한 구간추정과 가설검정 (1) (0) | 2020.04.22 |
6. 중심극한 정리 (0) | 2020.04.13 |
5. 모집단의 분산을 유추하기 (0) | 2020.04.13 |
4. 모집단의 평균을 유추하기 (0) | 2020.04.13 |
3. 정규분포와 표준정규분포 (0) | 2020.04.12 |