본문 바로가기
Archive/수학 & 통계학 관련

[Stat] 정규성의 검정

by 다람이도토리 2021. 5. 10.

Intro

회귀분석이나 통계 검증 등에서, 기본적으로 주어진 표본이 정규분포를 띄고 있는지는 가정으로 깔고 가는 경우가 많다. 따라서, 통계 검정 실시 전, 가설 확인을 위해 정규성을 확인해야 할 것이다.

정규성은 다음과 같은 방법들로 확인 가능하다.

(참고자료) 
[1] https://zephyrus1111.tistory.com/55
[2] https://towardsdatascience.com/6-ways-to-test-for-a-normal-distribution-which-one-to-use-9dcf47d8fa93

방법 1. 히스토그램(!)

시각화는 매우 강한 무기이다. 시각적으로 봐도, 정규분포가 어긋날 정도라면 이후의 고급 방법론은 크게 의미가 없을 것이다.

 

방법 2. Shapiro - Wilk Test 활용

두번째 방법은 조금 더 강한 유의수준에서 확인하고자 할때, 시각화만으로는 부족할 경우 사용할 수 있는 방법이다. 통계적 방법을 사용하여 Test할 수 있는데, 그 중 하나의 방법인 Shapiro-Wilk Test이다. 해당 테스트의 가설은 다음과 같다.

귀무가설 : 데이터는 정규분포를 따른다.

대립가설 : 데이터는 정규분포를 따르지 않는다.

따라서 p-value값이 유의수준 이하로 나올 경우, 귀무가설이 기각되며 데이터가 정규분포를 따른다고 볼 수 없게 된다.

참고. Shapiro Test의 아이디어

샘플들을 오름차순으로 정렬한다. 그리고 표준 정규분포에 추출된 순서 통계량의 이론적 기대값을 구한다.
이 기대값과, 오름차순으로 정렬된 샘플의 상관계수를 구한다. 이 상관관계가 1에 가까울수록 추출된 샘플이 정규분포에 가까울 것이라는 것이 Shapiro-Wilk Test의 아이디어이다.
from scipy import stats
shapiro_test = stats.shapiro(data)

바로 이렇게 data를 넣으면 두 값이 출력된다. 검정통계량, p-value 두개의 값이 출력된다.

 

방법 3. Komologorov - Smirnov test 활용

이 test의 경우는 정규분포를 넘어서 주어진 두 표본이 같은 분포를 따르는지를 확인할 수 있는 방법이다.

참고. Komologorov - Smirnov Test의 아이디어

두 분포의 누적 함수의 거리의 최댓값을 검정 통계량으로 정한다.

이 또한 위와 유사한 방식으로 분포를 2개 입력하면 검정통계량, p-value 두 개의 값이 출력된다.