도구 R로 푸는 통계
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보다 작으므로 귀무가설이 기각되고 대립가설이 채택됩니다. 고양이와 개 수명에는 유의한 차이가 있습니다. 고양이의 수명이 개보다 유의하게 크다고 할 수 있습니다.
영상이 더 편하신 분
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R강의] 102. 표본추출 방법 - 계통추출법(systematic sampling) (0) | 2020.09.29 |
---|---|
[R강의] 101. 통계청 데이터 다운받고 R에서 불러오는 방법 (0) | 2020.09.23 |
[R 강의] 99. 일표본 윌콕슨 검정 (일표본 t검정의 비모수) (0) | 2020.06.29 |
[R 강의] 98. 정규성검정 (LF test, SW test) (3) | 2020.06.27 |
[R 강의] 97. 대응표본 t검정 (4) | 2020.06.22 |
댓글