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 두 개의 값이 출력된다.
'Archive > 수학 & 통계학 관련' 카테고리의 다른 글
[Stat] Inverse CDF technique (0) | 2021.05.24 |
---|---|
[Stat] 기초 통계량 구현 코드 (0) | 2021.05.17 |
[Math] Entropy (0) | 2021.05.01 |
[Stat] 통계적 추정과 검정(수정) (4) | 2021.04.30 |
[Prob] 주요 확률분포(이항, 정규, 포아송, 지수) (0) | 2021.04.28 |