Python에서 nemenyi 사후 테스트를 수행하는 방법


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

Friedman 테스트의 p-값이 통계적으로 유의하다면 Nemenyi 사후 테스트를 수행하여 정확히 어떤 그룹이 다른지 확인할 수 있습니다.

다음 단계별 예제에서는 Python에서 Nemenyi 테스트를 수행하는 방법을 보여줍니다.

1단계: 데이터 생성

연구자가 환자의 반응 시간이 세 가지 다른 약물에 대해 동일한지 알고 싶어한다고 가정해 보겠습니다. 이를 테스트하기 위해 그는 10명의 서로 다른 환자의 세 가지 약물 각각에 대한 반응 시간(초)을 측정했습니다.

세 가지 약물 각각에 대한 각 환자의 응답 시간을 포함하는 다음 세 가지 테이블을 만들 수 있습니다.

 group1 = [4, 6, 3, 4, 3, 2, 2, 7, 6, 5]
group2 = [5, 6, 8, 7, 7, 8, 4, 6, 4, 5]
group3 = [2, 2, 5, 3, 2, 2, 1, 4, 3, 2]

2단계: 프리드먼 테스트 수행

다음으로 scipy.stats 라이브러리의 Friedmanchisquare() 함수를 사용하여 Friedman 테스트를 수행합니다.

 from scipy import stats

#perform Friedman Test
stats. friedmanchisquare (group1, group2, group3)

FriedmanchisquareResult(statistic=13.3513513, pvalue=0.00126122012)

Friedman 테스트는 다음과 같은 귀무 가설과 대립 가설을 사용합니다.

귀무 가설(H 0 ): 각 모집단의 평균은 동일합니다.

대립 가설: (Ha): 적어도 하나의 모집단 평균이 다른 모집단 평균과 다릅니다.

이 예에서 검정 통계량은 13.35135 이고 해당 p-값은 0.00126 입니다. 이 p-값은 0.05보다 작기 때문에 세 가지 약물 모두 평균 반응 시간이 동일하다는 귀무가설을 기각할 수 있습니다.

즉, 사용된 약물 유형이 반응 시간에 통계적으로 유의미한 차이를 일으킨다는 결론을 내릴 수 있는 충분한 증거가 있습니다.

3단계: Nemenyi 테스트 수행

그런 다음 Nemenyi 사후 테스트를 수행하여 어떤 그룹이 다른 평균을 가지고 있는지 정확하게 확인할 수 있습니다.

이를 위해서는 scikit-posthocs 라이브러리를 설치해야 합니다:

 pip install scikit-posthocs

다음으로, Nemenyi 사후 테스트를 수행하기 위해 posthoc_nemenyi_friedman() 함수를 사용할 것입니다:

 import scikit_posthocs as sp
import numpy as np

#combine three groups into one array
data = np. array ([group1, group2, group3])

#perform Nemenyi post-hoc test
sp. posthoc_nemenyi_friedman ( data.T )

	0 1 2
0 1.000000 0.437407 0.065303
1 0.437407 1.000000 0.001533
2 0.065303 0.001533 1.000000

참고: 사후 테스트를 올바르게 수행하려면 numpy 배열(data.T)을 전치해야 했습니다.

Nemeyi의 사후 테스트는 평균의 각 쌍별 비교에 대해 p-값을 반환합니다. 결과에서 다음과 같은 p-값을 볼 수 있습니다.

  • 그룹 1과 비교한 그룹 0의 P 값: 0.4374
  • 그룹 2와 비교한 그룹 0의 P 값: 0.0653
  • 그룹 2와 비교한 그룹 1의 P 값: 0.0015

α = 0.05에서 통계적으로 유의하게 다른 평균을 갖는 유일한 두 그룹은 그룹 1과 그룹 2입니다.

참고: Nemenyi의 테스트는 그룹 번호를 1, 2, 3에서 0, 1, 2로 변환했습니다. 따라서 원본 데이터에서 크게 다른 그룹은 그룹 2와 3입니다.

의견을 추가하다

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