파이썬에서 비모수 통계 가설 테스트를 계산하는 방법

응용 머신러닝에서는 두 데이터 샘플의 분포가 동일한지 또는 다른지 확인해야 하는 경우가 많습니다.

표본이 동일한 분포를 가질 가능성을 정량화할 수 있는 통계적 유의성 검정을 사용하여 이 질문에 답할 수 있습니다.

데이터에 익숙한 가우스 분포가 없으면 유의성 검정의 비모수 버전을 사용해야 합니다. 이러한 테스트는 유사한 방식으로 작동하지만 배포가 없으므로 테스트를 수행하기 전에 먼저 실제 값 데이터를 순위 데이터로 변환해야 합니다.

이 자습서에서는 데이터 표본이 동일하거나 다른 분포를 가진 모집단에서 추출되었는지 확인하는 데 사용할 수 있는 비모수 통계 검정을 알아봅니다.

이 자습서를 완료하면 다음을 알 수 있습니다.

  • 독립 데이터 표본을 비교하기 위한 Mann-Whitney U 검정: 학생 t-검정의 비모수 버전.
  • 쌍체 데이터 표본을 비교하기 위한 Wilcoxon 부호 순위 검정: 쌍체 학생 t-검정의 비모수 버전입니다.
  • 두 개 이상의 데이터 표본을 비교하기 위한 Kruskal-Wallis H 및 Friedman 검정, 즉 ANOVA의 비모수 버전과 반복 측도 분산 분석.

튜토리얼 개요

이 튜토리얼은 다음과 같이 여섯 부분으로 나뉩니다.

  1. 비모수 통계적 유의성 검정
  2. 테스트 데이터
  3. 만-휘트니 U 테스트
  4. 윌콕슨 서명 순위 테스트
  5. 크루스칼-월리스 H 테스트
  6. 프리드먼 테스트

비모수 통계적 유의성 검정

비모수 통계량은 데이터에 대한 특정 분포를 가정하지 않는 방법입니다.

종종 가우스 분포를 가정하지 않는 통계적 방법을 참조합니다. 순서형 또는 구간 데이터와 함께 사용하기 위해 개발되었지만 실제로는 관측치 자체가 아닌 데이터 표본에서 실제 값 관측치의 순위와 함께 사용할 수도 있습니다.

둘 이상의 데이터 세트에 대한 일반적인 질문은 서로 다른지 여부입니다. 특히, 중심 경향 (예 : 평균 또는 중앙값) 간의 차이가 통계적으로 유의한지 여부.

이 질문은 비모수 통계적 유의성 검정을 사용하여 가우스 분포가 없는 데이터 표본에 대해 대답할 수 있습니다. 이러한 검정의 귀무 가설은 종종 두 표본이 동일한 분포를 가진 모집단에서 추출되었으므로 평균 또는 중앙값과 같은 동일한 모집단 모수에서 추출되었다는 가정입니다.

둘 이상의 표본에 대한 유의성 검정을 계산한 후 귀무 가설이 기각되면 표본이 다른 모집단에서 추출되었음을 시사하는 증거가 있음을 나타내며, 결과적으로 평균 또는 중위수와 같은 모집단 모수의 표본 추정치 간의 차이가 유의할 수 있습니다.

이러한 테스트는 머신러닝 모델 간의 기술 차이가 유의한지 확인하기 위해 모델 기술 점수 샘플에 자주 사용됩니다.

일반적으로 각 검정은 검정 통계량을 계산하며, 이는 통계에 대한 배경 지식과 통계 검정 자체에 대한 더 깊은 지식을 가지고 해석되어야 합니다. 또한 검정은 검정 결과를 해석하는 데 사용할 수 있는 p-값을 반환합니다. p-값은 두 표본이 동일한 분포를 가진 모집단에서 추출되었다는 기본 가정(귀무 가설)이 주어지면 두 데이터 표본을 관찰할 확률로 생각할 수 있습니다.

p-값은 알파라고 하는 선택된 유의 수준의 맥락에서 해석될 수 있습니다. 알파의 일반적인 값은 5% 또는 0.05입니다. p-값이 유의 수준보다 작으면 검정은 귀무 가설을 기각할 충분한 증거가 있으며 표본이 분포가 다른 모집단에서 추출되었을 가능성이 높다는 것입니다.

  • p <= 알파: H0 거부, 다른 분포.
  • p > 알파: H0, 동일한 분포를 기각하지 못합니다.


테스트 데이터 세트

특정 비모수 유의성 검정을 살펴보기 전에 먼저 각 검정을 시연하는 데 사용할 수 있는 검정 데이터 세트를 정의해 보겠습니다.

서로 다른 분포에서 추출한 두 개의 샘플을 생성합니다. 단순화를 위해 가우스 분포에서 샘플을 가져오지만, 언급했듯이 이 자습서에서 검토하는 테스트는 특정 분포를 모르거나 가정하지 않는 데이터 샘플에 대한 것입니다.

randn() NumPy 함수를 사용하여 각 샘플에서 평균이 0이고 표준 편차가 1인 100개의 가우스 난수샘플을 생성합니다. 첫 번째 표본의 관측치는 평균이 50이고 표준 편차가 5가 되도록 척도화 됩니다. 두 번째 표본의 관측치는 평균이 51이고 표준 편차가 5가 되도록 척도화 됩니다.

통계 테스트를 통해 표본이 서로 다른 분포에서 추출되었음을 발견할 것으로 예상하지만, 표본당 100개의 관측치라는 작은 표본 크기는 이 결정에 약간의 노이즈를 추가할 것입니다.

전체 코드 예제는 다음과 같습니다.

예제를 실행하면 데이터 샘플이 생성된 다음 각 샘플에 대한 평균 및 표준 편차를 계산하고 인쇄하여 서로 다른 분포를 확인합니다.


만-휘트니 U 테스트

Mann-Whitney U 검정은 두 개의 독립 표본이 동일한 분포를 가진 모집단에서 추출되었는지 여부를 확인하기 위한 비모수 통계적 유의성 검정입니다.

이 테스트는 Henry Mann과 Donald Whitney의 이름을 따서 명명되었지만 Wilcoxon-Mann-Whitney 테스트라고도 불리며 테스트의 변형을 개발한 Frank Wilcoxon의 이름이기도 합니다.

두 샘플이 결합되고 순위가 함께 정렬됩니다. 전략은 두 표본의 값이 순위 순서에서 랜덤하게 혼합되어 있는지 또는 결합될 때 반대쪽 끝에 군집되어 있는지 확인하는 것입니다. 무작위 순위 순서는 두 표본이 다르지 않음을 의미하고 한 표본 값의 클러스터는 두 표본 간의 차이를 나타냅니다.

— 58페이지, 비 통계학자를 위한 비모수 통계: 단계별 접근, 2009.

기본 가정 또는 귀무 가설은 데이터 표본의 분포 간에 차이가 없다는 것입니다. 이 가설을 기각하면 표본간에 약간의 차이가 있을 수 있음을 시사합니다. 보다 구체적으로, 검정은 한 표본에서 랜덤하게 선택된 관측치가 다른 분포의 표본보다 크거나 작을 가능성이 같은지 여부를 확인합니다. 위반하면 다른 분포를 제안합니다.

  • H0 기각 실패: 표본 분포가 동일합니다.
  • 기각 H0: 표본 분포가 같지 않습니다.

검정이 효과적이려면 각 데이터 표본에 최소 20개의 관측치가 필요합니다.

우리는 mannwhitneyu() SciPy 함수를 사용하여 파이썬에서 Mann-Whitney U 테스트를 구현할 수 있습니다. 이 함수는 두 데이터 샘플을 인수로 사용합니다. 검정 통계량과 p-값을 반환합니다.

아래 예제는 테스트 데이터 세트에 대한 Mann-Whitney U 테스트를 보여줍니다.

예제를 실행하면 데이터 집합에 대한 검정이 계산되고 통계량과 p-값이 인쇄됩니다.

p-값은 표본 분포가 예상대로 다르다는 것을 강력하게 시사합니다.


윌콕슨 부호 순위 테스트

경우에 따라 데이터 샘플이 쌍을 이룰 수 있습니다.

예를 들어, 샘플이 어떤 방식으로 관련되거나 일치하거나 동일한 기술의 두 측정값을 나타내는 등 여러 가지 이유가 있습니다. 보다 구체적으로, 각 표본은 독립적이지만 동일한 모집단에서 나옵니다.

머신러닝에서 쌍을 이루는 샘플의 예로는 서로 다른 데이터 세트에서 평가되는 동일한 알고리즘 또는 정확히 동일한 학습 및 테스트 데이터에서 평가되는 서로 다른 알고리즘이 있을 수 있습니다.

샘플은 독립적이지 않으므로 Mann-Whitney U 검정을 사용할 수 없습니다. 대신 Frank Wilcoxon의 이름을 딴 Wilcoxon T 테스트라고도 하는 Wilcoxon 부호 순위 테스트가 사용됩니다. 쌍체 학생 T-검정과 동일하지만 가우스 분포를 가진 실제 값 데이터 대신 순위가 매겨진 데이터에 대한 것입니다.

Wilcoxon 부호 순위 검정은 쌍을 이루거나 관련된 두 표본을 비교하기 위한 비모수 통계 절차입니다. Wilcoxon 부호 순위 검정에 해당하는 모수는 학생의 t-검정, 일치하는 쌍에 대한 t-검정, 쌍을 이루는 표본에 대한 t-검정 또는 종속 표본에 대한 t-검정과 같은 이름으로 사용됩니다.

— 페이지 38-39, 비 통계자를 위한 비모수 통계: 단계별 접근, 2009.

검정에 대한 기본 가정인 귀무 가설은 두 표본의 분포가 동일하다는 것입니다.

  • H0 기각 실패: 표본 분포가 동일합니다.
  • 기각 H0: 표본 분포가 같지 않습니다.

검정이 효과적이려면 각 데이터 표본에 최소 20개의 관측치가 필요합니다.

윌콕슨 부호 순위 테스트는 wilcoxon() SciPy 함수를 사용하여 파이썬에서 구현할 수 있습니다. 이 함수는 두 표본을 인수로 사용하고 계산된 통계량과 p-값을 반환합니다.

전체 예제는 테스트 문제에 대한 Wilcoxon 부호 순위 테스트의 계산을 보여 주는 아래의 예입니다. 두 샘플은 기술적으로 쌍을 이루지 않지만 이 유의성 테스트의 계산을 시연하기 위한 것처럼 가장할 수 있습니다.

예제를 실행하면 통계가 계산되어 인쇄되고 결과가 인쇄됩니다.

p-값은 표본이 서로 다른 분포에서 추출되었음을 강력하게 시사하는 것으로 해석됩니다.


크루스칼-월리스 H 테스트

Mann-Whitney U 및 Wilcoxon 부호 순위 검정과 같은 유의성 검정을 사용할 때는 데이터 표본 간의 비교를 쌍별로 수행해야 합니다.

이는 데이터 표본이 많고 둘 이상의 표본이 서로 다른 분포를 갖는지 여부에만 관심이 있는 경우 비효율적일 수 있습니다.

Kruskal-Wallis 검정은 분산 검정 또는 줄여서 분산 분석의 일원 분석의 비모수 버전입니다. 이 방법의 개발자인 William Kruskal과 Wilson Wallis의 이름을 따서 명명되었습니다. 이 검정은 두 개 이상의 독립 표본이 서로 다른 분포를 갖는지 여부를 확인하는 데 사용할 수 있습니다. Mann-Whitney U 테스트의 일반화로 생각할 수 있습니다.

기본 가정 또는 귀무 가설은 모든 데이터 표본이 동일한 분포에서 추출되었다는 것입니다. 특히, 모든 그룹의 모집단 중앙값이 동일합니다. 귀무 가설의 기각은 하나 이상의 표본이 다른 표본을 지배한다는 것을 시사하는 충분한 증거가 있음을 나타내지만, 검정은 어떤 표본 또는 얼마나 많은지를 나타내지 않습니다.

Kruskal-Wallis H-검정이 유의한 결과를 가져오면 샘플 중 하나 이상이 다른 샘플과 다릅니다. 그러나 검정에서는 차이가 발생하는 위치를 식별하지 않습니다. 또한 얼마나 많은 차이가 발생하는지 식별하지 않습니다. 샘플 쌍 간의 특정 차이점을 식별하기 위해 연구자는 샘플 대조 또는 사후 테스트를 사용하여 특정 샘플 쌍에서 유의미한 차이를 분석할 수 있습니다. Mann-Whitney U-검정은 개별 표본 세트 간에 표본 대조를 수행하는 데 유용한 방법입니다.

— 페이지 100, 비통계학자를 위한 비모수 통계: 단계별 접근, 2009.

  • H0 기각 실패: 모든 표본 분포가 동일합니다.
  • 기각 H0: 하나 이상의 표본 분포가 같지 않습니다.

각 데이터 표본은 독립적이어야 하고 관측치가 5개 이상이어야 하며 데이터 표본의 크기가 다를 수 있습니다.

2개 대신 3개의 데이터 표본을 갖도록 테스트 문제를 업데이트할 수 있으며, 그 중 2개는 동일한 표본 평균을 갖습니다. 한 표본이 다르다는 점을 감안할 때 검정에서 차이를 발견하고 귀무 가설을 기각할 것으로 예상합니다.

Kruskal-Wallis H-test는 kruskal() SciPy 함수를 사용하여 파이썬에서 구현할 수 있습니다. 두 개 이상의 데이터 표본을 인수로 사용하고 검정 통계량과 p-값을 결과로 반환합니다.

전체 예제는 다음과 같습니다.

예제를 실행하면 테스트가 계산되고 결과가 출력됩니다.

p-값이 해석되어 모든 표본의 분포가 동일하다는 귀무 가설을 올바르게 기각합니다.


프리드먼 테스트

이전 예에서와 같이 두 개 이상의 다른 표본이 있을 수 있으며 모든 표본의 분포가 동일한지 여부에 관심이 있을 수 있습니다.

샘플이 반복 측정과 같은 방식으로 쌍을 이루는 경우 Kruskal-Wallis H 검정이 적절하지 않습니다. 대신 밀턴 프리드먼의 이름을 딴 프리드먼 테스트를사용할 수 있습니다.

Friedman 검정은 분산 검정의 반복 측도 분석 또는 반복 측도 분산 분석의 비모수 버전입니다. 이 테스트는 Kruskal-Wallis H 테스트를 두 개 이상의 샘플로 일반화한 것으로 생각할 수 있습니다.

기본 가정 또는 귀무 가설은 쌍을 이루는 여러 표본의 분포가 동일하다는 것입니다. 귀무 가설의 기각은 쌍체 표본 중 하나 이상이 서로 다른 분포를 갖는다는 것을 나타냅니다.

  • H0 기각 실패: 쌍체 표본 분포가 동일합니다.
  • H0 기각: 쌍체 표본 분포가 같지 않습니다.

이 테스트에서는 그룹당 10개 이상의 샘플이 있는 두 개 이상의 쌍체 데이터 샘플을 가정합니다.

Friedman 검정은 관련된 두 개 이상의 표본을 비교하기 위한 비모수 통계 절차입니다. 이 검정에 해당하는 모수는 분산 반복 측도 분석(ANOVA)입니다. Friedman 검정이 유의미한 결과를 가져오면 샘플 중 하나 이상이 다른 샘플과 다릅니다.

— 페이지 79-80,비통계학자를 위한 비모수 통계: 단계별 접근, 2009.

프리드만치스퀘어() SciPy 함수를 사용하여 파이썬에서 프리드먼 테스트를 구현할 수 있습니다. 이 함수는 비교할 데이터 샘플을 인수로 사용하고 계산된 통계량과 p-값을 반환합니다.

이 유의성 테스트는 이전 섹션에서 사용된 것과 동일한 테스트 데이터 세트의 변형에서 시연할 수 있습니다. 즉, 3개의 표본, 즉 모집단 평균이 동일한 표본 2개와 평균이 약간 다른 표본 1개입니다. 표본이 쌍을 이루지는 않지만 테스트를 통해 모든 표본의 분포가 동일하지 않다는 것을 발견할 것으로 예상합니다.

전체 코드 예제는 다음과 같습니다.

예제를 실행하면 세 개의 데이터 샘플에 대한 검정이 계산되고 검정 통계량과 p-값이 인쇄됩니다.

p-값의 해석은 적어도 하나의 표본이 다른 분포를 갖는다는 것을 올바르게 나타냅니다.


확장

이 섹션에는 탐색할 수 있는 자습서를 확장하기 위한 몇 가지 아이디어가 나열되어 있습니다.

  • 분포가 동일한 데이터 표본에 대해 작동하도록 모든 예제를 업데이트합니다.
  • 각 테스트의 요구 사항과 동작에 따라 각 통계적 유의성 테스트를 선택하기 위한 순서도를 만듭니다.
  • 머신러닝 프로젝트에서 데이터 샘플을 비교하는 3가지 사례를 고려하고, 샘플에 대해 비가우스 분포를 가정하고, 각 경우에 사용할 수 있는 테스트 유형을 제안합니다.

이러한 확장 기능을 탐색하면 알고 싶습니다.


추가 정보

이 섹션에서는 더 자세히 알아보려는 경우 주제에 대한 더 많은 리소스를 제공합니다.

API


기사


요약

이 튜토리얼에서는 데이터 표본이 동일하거나 다른 분포를 가진 모집단에서 추출되었는지 확인하는 데 사용할 수 있는 비모수 통계 검정을 발견했습니다.

특히 다음 내용을 배웠습니다.

  • 독립 데이터 표본을 비교하기 위한 Mann-Whitney U 검정: 학생 t-검정의 비모수 버전.
  • 쌍체 데이터 표본을 비교하기 위한 Wilcoxon 부호 순위 검정: 쌍체 학생 t-검정의 비모수 버전입니다.
  • 두 개 이상의 데이터 표본을 비교하기 위한 Kruskal-Wallis H 및 Friedman 검정, 즉 ANOVA의 비모수 버전과 반복 측도 분산 분석.

네피리티
No Comments

Sorry, the comment form is closed at this time.