-
빅데이터 분석기사 1) 정규성 검정(Normality Test)과 p-value데이터 사이언스(DS)와 통계 2024. 7. 26. 01:01
"데이터하는 사람인데... 그래도 국가 자격증은 하나쯤 있어야하지 않을까?" 라는 생각에
빅데이터 분석기사 자격증 취득했다.
개인적인 정리와 공유 차원에서
혼동하기 쉬운, 통계 쪽 파트만이라도 글을 작성하고자 한다.
그 중에 첫번째는 정규성 검정이다.
정규성이란, 영어로 Normality.
즉, '자연스러운', '정상성을 갖춘'이라는 의미를 내포한다.
정규 분포는 아래 그림과 같이 종 모양의 좌/우 대칭한 모습을 보이는데,
자연에 존재하는 대부분의 것들은 '정규 분포'를 따른다.
그리고 많은 통계 검정이 '정규 분포'를 가정하여 이뤄진다.
(적어도 빅데이터 분석기사 수준에서의 분포는 그러하다)
따라서, 통계 검정을 진행하기 전에 보유하고 있는 데이터가 '정규한지 아닌지'에 대한
검정(test)이 필요하다.
이를 바로 정규성 검정이라고 한다.
예를 들어, 아래와 같은 데이터가 존재한다고 하자.
이를 시각화해보면 정규하다는 판단이 설 수 있을까?
[119, 110, 108, 120, 117, 109, 96, 104, 123, 113, 129, 106, 93, 92, 102]종 모양은 아닌 것 같은데, 그렇다고 정규하지 않다고 딱 잘라 말하기도 애매하다. 즉, 그림으로는 판단이 서지 않는다.
따라서, 위 데이터의 분포가 얼마만큼 정규분포와 유사한지 판단해줄 수학적 장치가 필요하다.
이를 정규성 검정이라 하며, 많은 방법이 존재한다.
대표적으로는,
- Anderson Darling
- Chi-square test
- Shapiro-wilks 등등이 존재한다.
위 방법들은 모두 p-value를 통해 정규성을 판단할 수 있게 해준다.
여기서, p-value는 '재수없게 틀렸을 확률'을 말한다. (정확히는 귀무가설을 기각했는데, 귀무가설이 맞았을 확률이다.)
이게 무슨 뜻이냐면,
어떤 오락실 사장님이 새로 설치한 뽑기 게임기를 홍보한다고 가정해보자.
오락실 사장님은 '뽑기 당첨 확률이 1등부터 4등까지 모두 동일하게 25%로'
손님들이 쉽게 1등에 당첨될 수 있는 좋은 게임이라고 말하고 있다.
그런데 만일 뽑기 10개를 뽑았더니, 4등만 10개가 나왔다면
오락실 사장님 말을 신뢰할 수 있을까?
대부분의 사람은, 이 뽑기 게임이 1등부터 4등까지 모두 동일하게 25% 확률로 존재하지 않는다라고 생각할 것이다.
그 이유는 1등부터 4등이 모두 균등하게 분포한다면, 4등만 연속 10개가 나올 '확률'이 희박하기 때문이다.
그래서 '높은 확률(높은 신뢰수준)'로 [이 뽑기 게임은 1등부터 4등까지 모두 동일하게 25% 확률로 존재하지 않는다]라고 결론 짓는다.
그런데, 이 게임이 1등부터 4등까지 모두 동일하게 25% 확률로 존재하는 게임이었음에도 불구하고
뽑기 10개를 뽑아서, 재수 없게 4등만 10개가 나온 것이라면? 이 확률은 작지만 분명히 가능하다.
바로 이 확률이 'p-value'가 된다. 내가 내린 합리적인 판단이 '정말 희박한 이벤트 발생에 의해 틀렸을 확률'.
모든 통계적인 판단은 '재수없게도 4등이 연속 10번이나 뽑혔을 확률(p-value)'을 배제할 수 없다.
따라서, 모든 통계 검정(test)의 판단은 '재수없게 틀렸을 확률'을 감수하고 결론짓는다.
예를 들어, 수학적으로 구한 '4등이 연속 10번이나 뽑히는 확률'(p-value)이 3%라고 하자.
이때 내 판단의 신뢰수준을 99%로 높게하고 싶다면,
'재수없게도 4등이 연속 10번이나 뽑히는 확률 '이 1% 보다 크기때문에
['이 뽑기 게임은 1등부터 4등까지 모두 동일하게 25% 확률로 존재하지 않는다'라고 볼 수 없다]
라고 결론 짓는 것이 합리적이다.
하지만 판단의 신뢰도를 95%로, 즉 5% 확률까지는 틀릴 가능성을 감수하겠다고 마음먹는다면
3%의 확률인 '4등이 연속 10번이나 뽑히는 확률(p-value)'을 감수하고
[ '이 뽑기 게임은 1등부터 4등까지 모두 동일하게 25% 확률로 존재하지 않는다'] 라고
결론지을 수 있다.
다시 한번 용어를 정리하자면, 아래와 같다.
- 신뢰수준 : 얼마만큼의 높은 확률로 판단의 신뢰도를 유지하고 싶은가 (95%, 99%...)
- 유의수준: 몇 %까지 '틀릴 확률'을 감수하겠는가 (5%, 1%...), 신뢰수준과 반대되는 개념
- p-value : 우연히 발생한 '4등이 연속 10번이나 뽑히는 이벤트'에 의해 나의 합리적인 판단이 틀렸을 확률
(또는 합리적으로 귀무가설이 아니다고 판단했는데, 실제로는 귀무가설이 맞았을 확률)
- 귀무가설 : '차이가 없다고 주장하는 것', '정규하다고 주장하는 것'
위의 예시에서는 '이 뽑기 게임은 1등부터 4등까지 모두 동일하게 25% 확률로 존재한다'가 됨.
이제 p-value의 개념을 알았으니, 실제로 p-value를 통해 정규성 검정을 판단해보자.
정규성 검정은 shapiro-wilks를 통해 진행하며, python으로 해보자. 아주 간단하다.
import pandas as pd import numpy as np from scipy import stats data = np.array([119, 110, 101, 120, 117, 109, 96, 104, 123, 113, 129, 106, 93, 92, 102]) stats.shapiro(data) >> ShapiroResult(statistic=0.971520721912384, pvalue=0.8799036145210266)
정규성 검정의 귀무가설은 '이 data는 정규 분포를 따른다' 이며
정규성 검정 결과, p-value 값은 0.8799가 나왔다.
이제 유의수준을 5%로 설정하고, 판단을 내려보자.
p-value 값은 0.8799로 0.05보다 크다.
즉, 귀무가설을 기각할 정도로 p-value값이 작지 않다.
따라서 귀무가설을 기각하지 않는다.
다시말해서 '정규성을 만족하지 않는다'라고 볼 수 없다. (귀무가설이 아니라고 볼 수 없다와 동일한 문장)
'정규성을 만족하지 않는다'라고 볼 수 없으므로, 정규하다
=> 위 data는 정규하다고 판단한다.
만일 p-value 값이 0.05보다 작았다면, '정규하지 않다'라고 판단할 수 있겠다.
728x90'데이터 사이언스(DS)와 통계' 카테고리의 다른 글
빅데이터 분석기사 5) F 분포와 F 검정(F-test) 그리고 등분산성 검정 (0) 2024.07.28 빅데이터 분석기사 4) 카이제곱 분포와 검정(chi-squared test) (0) 2024.07.27 빅데이터 분석기사 3) t 검정(t-test)과 수행 예시 (0) 2024.07.27 빅데이터 분석기사 2) 중심 극한 정리와 t 검정 (t-test) (0) 2024.07.27