R에서 mann-whitney u 테스트를 수행하는 방법
Mann-Whitney U 검정 (Wilcoxon 순위합 검정이라고도 함)은 표본 분포가 정규 분포를 따르지 않고 표본 크기가 작은(n < 30) 경우 두 독립 표본 간의 차이를 비교하는 데 사용됩니다.
이는 독립 2표본 t 검정 과 동등한 비모수적 검정으로 간주됩니다.
이 튜토리얼에서는 R에서 Mann-Whitney U 테스트를 수행하는 방법을 설명합니다.
예: R의 Mann-Whitney U 테스트
연구자들은 새로운 약물이 공황 발작을 예방하는 데 효과적인지 여부를 알고 싶어합니다. 총 12명의 환자를 무작위로 6명씩 두 그룹으로 나누어 신약 또는 위약을 투여받는 그룹으로 배정했습니다. 그런 다음 환자는 한 달 동안 경험한 공황 발작 횟수를 기록합니다.
결과는 아래와 같습니다:
| 신약 | 위약 |
|---|---|
| 삼 | 4 |
| 5 | 8 |
| 1 | 6 |
| 4 | 2 |
| 삼 | 1 |
| 5 | 9 |
Mann-Whitney U 테스트를 수행하여 위약군 환자와 신약군 환자의 공황 발작 횟수에 차이가 있는지 확인합니다. 유의수준 0.05를 사용합니다.
Mann-Whitney U 테스트를 수행하는 방법에는 두 가지가 있지만 두 방법 모두 wilcox.test() 함수를 사용하고 둘 다 동일한 결과를 가져옵니다.
옵션 1: 데이터를 두 개의 별도 벡터로 입력합니다.
#create a vector for each group new <- c(3, 5, 1, 4, 3, 5) placebo <- c(4, 8, 6, 2, 1, 9) #perform the Mann Whitney U test wilcox.test(new, placebo) #output Wilcoxon rank sum test with continuity correction data: new and placebo W = 13, p-value = 0.468 alternative hypothesis: true location shift is not equal to 0
옵션 2: 두 개의 열이 있는 데이터 프레임에 데이터를 입력합니다. 한 열에는 공황 발작 횟수가 포함되고 다른 열에는 그룹이 포함됩니다.
#create a data frame with two columns, one for each group drug_data <- data.frame(attacks = c(3, 5, 1, 4, 3, 5, 4, 8, 6, 2, 1, 9), drug_group = c(rep("old", 6), rep("placebo", 6))) #perform the Mann Whitney U test wilcox.test(attacks~drug_group, data = drug_data) #output data: attacks by drug_group W = 13, p-value = 0.468 alternative hypothesis: true location shift is not equal to 0
두 방법 모두 정확히 동일한 결과를 가져온다는 점에 유의하세요. 즉, 검정 통계량은 W = 13이고 해당 p-값은 0.468 입니다.
p-값이 0.05보다 크므로 귀무가설을 기각할 수 없습니다.
이는 위약군 환자가 경험한 공황발작 횟수가 신약군 환자와 다르다고 말할 수 있는 충분한 증거가 없음을 의미한다.
Wilcox.test() 사용 시 참고 사항
기본적으로 wilcox.test()는 양측 가설 검정을 실행한다고 가정합니다. 그러나 대신 단측 테스트를 실행하려는 경우 Alternative=”less” 또는 Alternative=”more”를 지정할 수 있습니다.
예를 들어, 신약이 위약보다 공황 발작을 덜 유발한다는 가설을 테스트한다고 가정해 보겠습니다. 이 경우 Wilcox.test() 함수에 Alternative=”less”를 지정할 수 있습니다.
#create a vector for each group new <- c(3, 5, 1, 4, 3, 5) placebo <- c(4, 8, 6, 2, 1, 9) #perform the Mann Whitney U test, specify alternative="less" wilcox.test(new, placebo, alternative="less") #output Wilcoxon rank sum test with continuity correction data: new and placebo W = 13, p-value = 0.234 alternative hypothesis: true location shift is less than 0
검정 통계량은 여전히 W = 13이지만 p-값은 이제 0.234 입니다. 이는 양측 검정에 대한 이전 p-값의 정확히 절반입니다.
p-값은 항상 0.05보다 크므로 여전히 귀무가설을 기각하지 못합니다.
신약군 환자가 경험한 공황 발작 횟수가 위약군 환자보다 낮다고 말할 수 있는 충분한 증거는 없습니다.