거의 모든 통계기법들을 보면 "정규분포"를 따를 때, "정규분포를 따른다고 가정하면"
이란 말들이 참 많이 나옵니다.
도대체 정규분포가 뭐길래... 물론 고등학교 때부터 배워 온 단어이기는 하지만...
일단 데이터가 있으면 정규분포를 따르는지를 검정하여 보기로 하겠습니다.
여기에는 샤피로 월크 검정이 사용됩니다.
샤피로 윌크 검정
샤피로 윌크 검정(Shapiro-Wilk Test)은 표본이 정규 분포로부터 추출된 것인지 테스트하기 위한 방법입니다.
검정은 R을 설치할 때 기본적으로 설치되는 {stats} 패키지의 shapiro.test( ) 함수를 사용하는데, 이때 귀무가설은 "주어진 데이터가 정규 분포로부터의 표본이다"라는 것입니다.
?shapiro.test #shapiro.test()함수 도움말
# shapiro.test {stats} # 패키지 stats 있는 함수임을 확인
# 생뚱맞지만 평균=5, 표준편차=3인 정규분포를 따르는 난수 만들고, shapiro테스트
set.seed(123)
rn <- rnorm(100, mean = 5, sd = 3)
hist(rn)
shapiro.test(rn)
# Shapiro-Wilk normality test
# data: rn
# W = 0.99388, p-value = 0.9349
당연히 p-value > 0.05 이므로 "정규분포를 따른다." 라는 가설을 채택합니다.
qqnorm(rn)
qqline(rn,col="red",lwd=2)
# 당연히 정규분포를 따르지 않을, 균등분포(최고값=2, 최댓값 4)를 만들고 shpiro 테스트
set.seed(123)
ru <- runif(100, min = 2, max = 4)
hist(ru)
shapiro.test(ru)
# Shapiro-Wilk normality test
# data: ru
# W = 0.95237, p-value = 0.001192
# p-value <0.05 로서 당연히 "표본이 정규분포를 따른다"는 가설을 기각합니다.
qqnorm(ru)
qqline(ru,col="red",lwd=2)