51. 중심극한정리 시뮬레이션
중심극한정리가 실제로 성립하는지 구현해봅시다.
(중심극한정리 설명 : http://hsm-edu.tistory.com/21)
먼저 모집단을 만들겠습니다. 1~10,40~50,90~100 사이 수로 이루어진 집단입니다. Q-Q plot을 그려보면 정규분포를 따르지 않는다는 것을 알 수 있습니다. 의도적으로 정규분포를 따르지 않도록 설정하였습니다. (Q-Q plot 그리는 법 : http://hsm-edu.tistory.com/473)
population=c(1:10,40:50,90:100)
qqnorm(population)
qqline(population)
for문을 이용해서 표본을 3000번 뽑았습니다. 표본의 크기는 1부터 1000까지 증가시켰습니다.
par 함수를 이용하여 화면을 6개로 분할하였습니다. (화면 분할 방법 : http://hsm-edu.tistory.com/475)
par(mfrow = c(3, 2))
Sample_Mean=numeric()
for(i in 1:3000) Sample_Mean[i]=mean(sample(population,1,replace=TRUE))
hist(Sample_Mean,freq=FALSE,main="n=1",xlab="Sample_Mean (n=1)")
lines(density(Sample_Mean))
Sample_Mean=numeric()
for(i in 1:3000) Sample_Mean[i]=mean(sample(population,5,replace=TRUE))
hist(Sample_Mean,freq=FALSE,main="n=5",xlab="Sample_Mean (n=10)")
lines(density(Sample_Mean))
Sample_Mean=numeric()
for(i in 1:3000) Sample_Mean[i]=mean(sample(population,30,replace=TRUE))
hist(Sample_Mean,freq=FALSE,main="n=30",xlab="Sample_Mean (n=30)")
lines(density(Sample_Mean))
Sample_Mean=numeric()
for(i in 1:3000) Sample_Mean[i]=mean(sample(population,100,replace=TRUE))
hist(Sample_Mean,freq=FALSE,main="n=100",xlab="Sample_Mean (n=100)")
lines(density(Sample_Mean))
Sample_Mean=numeric()
for(i in 1:3000) Sample_Mean[i]=mean(sample(population,500,replace=TRUE))
hist(Sample_Mean,freq=FALSE,main="n=500",xlab="Sample_Mean (n=500)")
lines(density(Sample_Mean))
Sample_Mean=numeric()
for(i in 1:3000) Sample_Mean[i]=mean(sample(population,1000,replace=TRUE))
hist(Sample_Mean,freq=FALSE,main="n=1000",xlab="Sample_Mean (n=1000)")
lines(density(Sample_Mean))
표본의 크기(n)가 30정도 되면 어느정도 정규분포의 모양을 갖네요. 30이라는 숫자가 괜히 나온게 아니군요.
영상이 더 편하신 분
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R 강의] 53. 함수를 파일(.R)로 저장 및 사용하기 (0) | 2020.03.26 |
---|---|
[R 강의] 52. 작업폴더 보기/설정하기, 작업폴더 내 파일보기 (0) | 2020.03.26 |
[R 강의] 50. 화면분할, 여러 그래프를 한 화면에 그리기 (par 함수) (0) | 2020.03.25 |
[R 강의] 49. Q-Q plot 그리는 방법 (qqnorm) (0) | 2020.03.25 |
[R 강의] 48. 분위수 구하는 방법 (quantile) (0) | 2020.03.25 |
댓글