728x90

거의 모든 통계기법들을 보면 "정규분포"를 따를 때, "정규분포를 따른다고 가정하면"

이란 말들이 참 많이 나옵니다.

도대체 정규분포가 뭐길래... 물론 고등학교 때부터 배워 온 단어이기는 하지만...

 

일단 데이터가 있으면 정규분포를 따르는지를 검정하여 보기로 하겠습니다.

여기에는 샤피로 월크 검정이 사용됩니다.

샤피로 윌크 검정

샤피로 윌크 검정(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)

 

 

 

 

 

 

 

+ Recent posts