Python에서 dunn의 테스트를 수행하는 방법


Kruskal -Wallis 검정은 세 개 이상의 독립 그룹의 중앙값 간에 통계적으로 유의미한 차이가 있는지 여부를 확인하는 데 사용됩니다. 이는 일원 분산 분석 과 동등한 비모수적 분석으로 간주됩니다 .

Kruskal-Wallis 테스트의 결과가 통계적으로 유의하다면 Dunn 테스트를 수행하여 정확히 어떤 그룹이 다른지 확인하는 것이 적절합니다 .

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

예: Python의 Dunn 테스트

연구자들은 세 가지 다른 비료가 식물 성장의 다른 수준으로 이어지는지 알고 싶어합니다. 그들은 무작위로 30개의 서로 다른 식물을 선택하고 이를 10개씩 세 그룹으로 나누고 각 그룹에 서로 다른 비료를 적용했습니다. 한 달 후에 그들은 각 식물의 높이를 측정합니다.

Kruskal-Wallis 테스트를 실행한 후 전체 p-값이 통계적으로 유의하다는 사실을 발견했습니다. 즉, 중앙값 성장이 세 그룹에서 동일하지 않음을 의미합니다. 그런 다음 Dunn의 테스트를 수행하여 정확히 어떤 그룹이 다른지 확인합니다.

Python에서 Dunn 테스트를 수행하려면 scikit-posthocs 라이브러리의 posthoc_dunn() 함수를 사용할 수 있습니다.

다음 코드는 이 함수를 사용하는 방법을 보여줍니다.

1단계: scikit-posthocs를 설치합니다.

먼저 scikit-posthocs 라이브러리를 설치해야 합니다:

 pip install scikit-posthocs

2단계: Dunn의 테스트를 수행합니다.

그런 다음 데이터를 생성하고 Dunn 테스트를 수행할 수 있습니다.

 #specify the growth of the 10 plants in each group
group1 = [7, 14, 14, 13, 12, 9, 6, 14, 12, 8]
group2 = [15, 17, 13, 15, 15, 13, 9, 12, 10, 8]
group3 = [6, 8, 8, 9, 5, 14, 13, 8, 10, 9]
data = [group1, group2, group3]

#perform Dunn's test using a Bonferonni correction for the p-values
import scikit_posthocs as sp
sp. posthoc_dunn (data, p_adjust = ' bonferroni ')

               1 2 3
1 1.000000 0.550846 0.718451
2 0.550846 1.000000 0.036633
3 0.718451 0.036633 1.000000

우리는 familywise 오류율을 제어하기 위해 p-값에 Bonferroni 수정을 사용하기로 선택했지만 p_adjust 인수에 대한 다른 잠재적 선택은 다음과 같습니다.

  • 시닥
  • 홀름시닥
  • 시메스 호흐베르그
  • fdr_bh
  • fdr_by
  • fdr_tsbh

이러한 각 p-값 조정 방법에 대한 자세한 내용은 설명서를 참조하세요.

3단계: 결과를 해석합니다.

Dunn의 테스트 결과에서 다음을 확인할 수 있습니다.

  • 그룹 1과 그룹 2의 차이에 대한 수정된 p-값은 0.550846 입니다.
  • 그룹 1과 그룹 3 간의 차이에 대한 수정된 p-값은 0.718451 입니다.
  • 그룹 2와 그룹 3의 차이에 대한 수정된 p-값은 0.036633 입니다.

따라서 α = 0.05에서 통계적으로 유의하게 다른 두 그룹은 그룹 2와 3뿐입니다.

추가 리소스

다중 비교를 위한 Dunn 테스트 소개
R에서 Dunn의 테스트를 수행하는 방법

의견을 추가하다

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