월콕슨 검정(Wilcoxon Test) : 표본의 정규성이 확보되지 않을 때
두 집단의 사이를 비교할 경우 t검정 대신 사용하는 비모수 검정 방
법 중 하나
t-test : 두 집단 비교시 평균, 표준오자에 따라 분석
월콕슨검정 : 너무 작은 표본수의 평균을 비교하면 소수의 극단치에 의해 평균이 크게 영향을 받음
두 집단의크기에따른부호(sign)에서 순위(rank)를고러
signed rank:
다음 자료는 갑과 을, 두 지역에신호등을 설치할 것인가를알아보기 위해
10일간 일정한 시간 동안 통과하는 차량 수를 조사한 것이다. 지역에 따라
통과 차량의 수가 다른지를 검정하라
# 지역별 통행량 data 입력
countA <- c(592,625,777,613,587,637,629,843,544,668)
countB <- c(622,644,664,853,608,635,885,668,649,714)
countAll <- c(countA,countB)
# 지역 label 만들기
region <-c(rep('regionA',10),rep('regionB',10))
# 지역별 통행량을 data frame으로 전환
sampleData <- data.frame(region,countAll)
sampleData
# 지역별 평균값 구하기
tapply(sampleData$countAll, sampleData$region, mean)
regionA regionB
651.5 694.2
# 지역별 표준편차 구하기
tapply(sampleData$countAll, sampleData$region, sd)
regionA region
91.19728 96.79509
# 지역별 통행량 boxplot
boxplot(countA,countB, main ='지역별 통행량', xlab='지역',ylab='통행량')
# Wilcoxon 순위 합 검정
wilcox.test(countAll~region, data=sampleData, correct = FALSE, exact=FALSE,
paired=FALSE)
Wilcoxon rank sum test
data: countAll by region
W = 30.5, p-value = 0.1403
alternative hypothesis: true location shift is not equal to 0
다음 자료는 4 종류 복사기에 대한 평균 고장 시간을 측정한 자료이다.
4 종류 복사기에 대한 평균 고장 시간에 사이가 있는지 검정하라.
# 고장시간 입력
failureTimeA <- c(28,41,34,52,25)
failureTimeB <- c(5,16,20,24,15)
failureTimeC <- c(10,8,18,14,26)
failureTimeD <- c(45,30,49,32,36)
failureTimeAll<- c(failureTimeA,failureTimeB,failureTimeC,failureTimeD)
# 기기 별 label 만들기
machine <- c(rep('A',5),rep('B',5),rep('C',5),rep('D',5))
# data frame 형태로 변환
sampleData<- data.frame(machine,failureTimeAll)
sampleData
# 기기별 평균값 구하기
tapply(sampleData$failureTimeAll, sampleData$machine, mean)
A B C D
36.0 16.0 15.2 38.4
# 기기별 표준편차 구하기
tapply(sampleData$failureTimeAll, sampleData$machine, sd)
A B C D
10.839742 7.106335 7.155418 8.264381
# 기기별 고장시간 boxplot
boxplot(failureTimeA, failureTimeB, failureTimeC, failureTimeD,
main='기기별고장시간', xlab='기기', ylab='고장시간‘)
# Kruskal –Wallis 검정
kruskal.test(failureTimeAll ~ machine, data = sampleData)
Kruskal-Wallis rank sum test
data: failureTimeAll by machine
Kruskal-Wallis chi-squared = 13.834, df = 3,
p-value = 0.00314
세 개 이상의 집단을 비교하기 위한 방법, 요인이 두개
다음은 콩쿨에서 5 명의 심사위원들이 4 명의 참가자를 대상으로 평가한 심
사 자료이다. 참가자들의 점수에 유의한 사이가 있는지 검정하라
관련함수:
friedman.test(x~group A \ block B,data=data이름)
friedman.test(data$ y, data$ groupA, data$bIockB)
y: 정량적인수치
group A : a vector giving the group for the corresponding
elements Of y
block B : a vector giving the block for the corresponding
elements Of y
# 점수 입력
y <- c(3,4,1,2,3,2,1,4,2,3,1,4,3,2,1,4,3,2,1,4)
# group에 해당하는 참가자 입력
groupA <- rep(c('A','B','C','D'),5)
# block에 해당하는 심사위원 입력
blockB <- c(rep('b1',4),rep('b2',4),rep('b3',4),rep('b4',4),rep('b5',4))
# Friedman 검정
friedman.test(y~groupA|blockB)
Friedman rank sum test
data: y and groupA and blockB
Friedman chi-squared = 10.68, df = 3, p-value =0.01359
어떤 제품을 사용한 경험이 있는가를 알아보기 위해 26 명에게 물어보았다.
경험이 있는 경우는 C, 경험이 없는 경우는 D로 표기하였다. 이 표본이 무작위 추출이 되었는가를 검정하라.
DCCCCCDCCDCCCCDCDCCCDDDCCC
library(DescTools)
# 입력 data를 vector 형태로 받기
queue <- factor(c("d","c","c","c","c","d","c","c","d","c","c","c","c","d","c",
"d","c","c","c","d","d","d","c","c","c"))
# run 검정
RunsTest(queue, alternative="two.sided")
Runs Test for Randomness
data: queue
runs = 12, m = 17, n = 8, p-value = 1
alternative hypothesis: true number of runs is not equal the expected
number
# p-value=1 : 무작위로 추출된 표본이다.