본문 바로가기
R 주제/R 기초 및 통계 강의

[R 강의] 100. 윌콕슨 순위합 검정 (독립표본 t검정의 비모수)

by 만다린망고 2020. 7. 9.
반응형

도구 R로 푸는 통계

100. 윌콕슨 순위합 검정 (독립표본 t검정의 비모수)

 

1. 설명


표본의 정규성이 확보되지 않은 경우 독립표본 t검정 대신 사용합니다. 독립표본 t검정은 서로 독립인 두 집단의 평균을 비교하는 검정입니다. 


윌콕슨 순위합 검정(Wilcoxon rank sum test)는 맨-휘트니 U 검정(Mann–Whitney U test)이라고도 부릅니다. 


아래 두번째 경우에서 정규성 검정에 기각된 경우와, 세번째 경우에서 윌콕슨 순위합 검정을 하게됩니다. 


30 이상 : t-test

10-30 : 정규성검정 여부 결정

10 이하 : 윌콕슨순위합검정



위 내용을 디시전트리로 정리하면 아래와 같습니다. 




한가지 더 고려해야할 내용은 양측, 단측검정입니다. 알려진 두 집단의 평균이 같은지 다른지 여부를 알고 싶으면 '양측검정'을 선택하면 됩니다. 어느 한쪽이 더 큰지 여부 또는 어느 한쪽이 더 작은지 여부를 알고 싶으면 '단측검정'을 선택합니다. 


헷갈릴 수 있는 부분이라 양측검정과 단측검정을 코드와 함께 설명하겠습니다. 비교하려는 두 집단의 평균을 A와 B라고 놓겠습니다. 각 집단에서 뽑은 표본을 sample_A 와 sample_B라고 놓겠습니다. 


<양측검정>


귀무가설 : A=B

대립가설 : A≠B (우리의 주장)


wilcox.test(sample_A,sample_B)


<단측검정>


귀무가설 : A=B

대립가설 : A<B (우리의 주장)


wilcox.test(sample_A,sample_B,alternative="less")


귀무가설 : A=B

대립가설 : A>B (우리의 주장)


wilcox.test(sample_A,sample_B,alternative="greater")




2. 예시


개와 고양이의 수명에 차이가 있는지 궁금했습니다. 먼저 가설을 세워야 합니다. 귀무가설은 개와 고양이 수명이 같다입니다. 이제 우리의 주장인 대립가설을 세워봅시다. 저는 개가 고양이보다 오래 살 것이라고 생각합니다. 따라서 아래와 같이 귀무가설과 대립가설을 세우겠습니다. 


귀무가설 : 개 수명 = 고양이 수명

대립가설 : 개 수명 ≠ 고양이 수명


데이터를 수집했고, 개15마리와 고양이 15마리의 수명 데이터를 얻었습니다. 아래와 같습니다. (개와 고양이 수명인 12~15년 과 15~20년을 고려하여 임의로 생성하였습니다.)


#1.표본생성

dog=c(15.0,12.1,13.4,12.7,15.7,14.7,12.3,12.9,15.2,12.1,12.7,12.9,12.4,13.9,12.8)

cat=c(16.1,17.7,15.2,17.6,18.3,19.0,19.3,16.0,15.8,15.4,18.7,19.5,16.9,15.9,18.1)


먼저 그래프를 한번 그려봅시다. boxplot을 그려보겠습니다. 두 데이터를 시각적으로 비교하고, 이상치 등이 있는지 확인하기 위함입니다. 


#2.시각화

boxplot(dog,cat,names=c("dog","cat"),ylim=c(0,20),cex.axis=2)



이번에는 평균,표준편차,최댓값,최솟값을 구해봅시다. 기술통계량을 구하는 것입니다. 


#3.기술통계

dog_DS=paste0("dog :",round(mean(dog),1),"±",round(sd(dog),1),"(",min(dog),",",max(dog),")")

cat_DS=paste0("cat :",round(mean(cat),1),"±",round(sd(cat),1),"(",min(cat),",",max(cat),")")


> dog_DS

[1] "dog:13.4±1.2(12.1,15.7)"

> cat_DS

[1] "cat:17.3±1.5(15.2,19.5)"


표본의 크기가 10-30 이므로, 정규성검정을 해야합니다. 정규성검정 결과에 따라 독립표본 t검정을 할지, 윌콕스 순위합검정을 할지 결정합니다. 정규성검정은 Lilliefors test와 Shapiro wilk test 두가지를 하겠습니다. 


#4. 정규성 검정 수행


#Lilliefors test

library(nortest)


lillie.test(dog)$p.value

lillie.test(cat)$p.value


#shapiro wilk test

shapiro.test(dog)$p.value

shapiro.test(cat)$p.value



> lillie.test(dog)$p.value

[1] 0.008957666


> lillie.test(cat)$p.value

[1] 0.1555209


> shapiro.test(dog)$p.value

[1] 0.03101055


> shapiro.test(cat)$p.value

[1] 0.1959406


dog가 정규분포를 따르지 않습니다. 따라서 비모수검정인 wilcox test를 해야합니다. 


#5. 윌콕슨 순위합 검정 수행

wilcox.test(dog,cat)


> wilcox.test(dog,cat)


Wilcoxon rank sum test with continuity correction


data:  dog and cat

W = 2.5, p-value = 5.523e-06

alternative hypothesis: true location shift is not equal to 0


Warning message:

In wilcox.test.default(dog, cat) :

  tie가 있어 정확한 p값을 계산할 수 없습니다


p값이 0.05보다 작으므로 귀무가설이 기각되고 대립가설이 채택됩니다. 고양이와 개 수명에는 유의한 차이가 있습니다. 고양이의 수명이 개보다 유의하게 크다고 할 수 있습니다. 



영상이 더 편하신 분


반응형

댓글