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뿐입니다.