R에서 프리드먼 테스트를 수행하는 방법


Friedman 테스트는 반복 측정 ANOVA에 대한 비모수적 대안입니다. 각 그룹에 동일한 대상이 나타나는 3개 이상의 그룹의 평균 간에 통계적으로 유의한 차이가 있는지 여부를 확인하는 데 사용됩니다.

이 튜토리얼에서는 R에서 Friedman 테스트를 수행하는 방법을 설명합니다.

예: R의 Friedman 테스트

R에서 Friedman 테스트를 수행하려면 다음 구문을 사용하는 Friedman.test() 함수를 사용할 수 있습니다.

Friedman.test(y, 그룹, 블록)

금:

  • y: 응답 값의 벡터입니다.
  • 그룹: 관찰이 속한 “그룹”을 나타내는 값의 벡터입니다.
  • 블록: “차단” 변수를 나타내는 값의 벡터입니다.

이 함수는 카이제곱 검정 통계량과 해당 p-값을 생성합니다. p-값이 특정 유의 수준(일반적으로 0.10, 0.05, 0.01)보다 낮으면 각 그룹 간의 평균이 동일하지 않다는 충분한 증거가 있습니다.

이 기능을 사용하는 방법을 설명하기 위해 4가지 다른 약물에 대한 5명의 환자의 반응 시간을 보여주는 데이터 세트를 생성합니다. 각 환자는 네 가지 약물 각각에 대해 측정되므로 Friedman 테스트를 사용하여 평균 반응 시간이 약물 간에 다른지 확인합니다.

먼저 데이터 세트를 생성합니다.

 #create data
data <- data.frame(person = rep(1:5, each=4),
                   drug = rep(c(1, 2, 3, 4), times=5),
                   score = c(30, 28, 16, 34, 14, 18, 10, 22, 24, 20,
                             18, 30, 38, 34, 20, 44, 26, 28, 14, 30))

#view data
data

   person drug score
1 1 1 30
2 1 2 28
3 1 3 16
4 1 4 34
5 2 1 14
6 2 2 18
7 2 3 10
8 2 4 22
9 3 1 24
10 3 2 20
11 3 3 18
12 3 4 30
13 4 1 38
14 4 2 34
15 4 3 20
16 4 4 44
17 5 1 26
18 5 2 28
19 5 3 14
20 5 4 30

다음으로 점수 를 반응 변수로, 약물을 그룹화 변수로, 사람을 차단 변수로 사용하여 Friedman 테스트를 수행합니다.

 #perform Friedman Test
friedman.test(y=data$score, groups=data$drug, blocks=data$person)

	Friedman rank sum test

data: data$score, data$drug and data$person
Friedman chi-squared = 13.56, df = 3, p-value = 0.00357

카이제곱 검정 통계량은 13.56 이고 해당 p-값은 0.00357 입니다. 이 p-값은 0.05보다 작기 때문에 평균 반응 시간이 네 가지 약물 모두에 대해 동일하다는 귀무가설을 기각할 수 있습니다. 우리는 사용된 약물의 유형에 따라 반응 시간이 통계적으로 유의미하게 달라진다는 결론을 내릴 수 있는 충분한 증거를 가지고 있습니다.

프리드먼 테스트는 약물 간 평균 반응 시간에 차이가 있는지 여부를 알려주지만, 어떤 약물이 평균 반응 시간이 다른지 구체적으로 알려주지는 않습니다. 이를 이해하려면 사후 테스트를 수행해야 합니다.

Friedman 테스트의 경우 적절한 사후 테스트는 Bonferroni 수정을 사용한 쌍별 Wilcoxon 순위 합계 테스트이며 다음 구문을 사용하여 구현할 수 있습니다.

pairwise.wilcox.test(data$score, data$drug, p.adj = “bonf”)

금:

  • x: 응답 벡터
  • g: 그룹화 벡터
  • p.adj: p-값 조정 방법; 옵션에는 holm, hochberg, hommel, bonferroni, BH, BY, fdr 및 없음이 포함됩니다.

예제에 사용할 구문은 다음과 같습니다.

 #perform post-hoc tests
pairwise.wilcox.test(data$score, data$drug, p.adj = "bonf")
	Pairwise comparisons using Wilcoxon rank sum test 

data: data$score and data$drug 

  1 2 3    
2 1,000 - -    
3 0.449 0.210 -    
4 1,000 1,000 0.072

P value adjustment method: bonferroni 

이는 각 쌍별 Wilcoxon 순위 합계 검정에 대한 p-값을 표시하는 행렬을 생성합니다. 0.10에서 통계적으로 유의미한 차이가 있는 유일한 약물 그룹은 그룹 3과 4( p = 0.072 )임을 알 수 있습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다