정규 데이터

Python으로 배우는 실험 설계

James Chapman

Curriculum Manager, DataCamp

정규분포

 

  • 익숙한 ‘종형 곡선’
  • z-점수와 관련

$$ {z} = \frac{x-\mu}{\sigma}$$

  • 평균=0, 표준편차=1
    • ‘이 점은 평균에서 몇 표준편차인가?’
    • ‘이 점수를 얻을 확률은?’

 

전형적인 종형 곡선 플롯, 흰 배경의 파란 곡선

Python으로 배우는 실험 설계

정규 데이터와 통계 검정

 

  • 모수적 검정에 필요
  • 비모수 검정: 정규성 가정 없음

 

전형적인 종형 곡선 플롯, 흰 배경의 파란 곡선

Python으로 배우는 실험 설계

정규, Z, 그리고 알파

 

  • 유의수준($\alpha$)과 밀접히 연결
  • p-값을 $\alpha$와 비교
  • 제1종 오류 확률

 

정규분포의 양꼬리에 작은 검은 영역이 채워진 그림

Python으로 배우는 실험 설계

정규 데이터 시각화

 

sns.displot(data=salaries,
            x='salary',
            kind="kde")
plt.show()

 

전통적인 것보다 높고 좁지만 여전히 전형적인 종 모양의 곡선 분포

Python으로 배우는 실험 설계

QQ 플롯

QQ 그림: 데이터를 특정 분포와 비교

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • 이상적: 점이 선을 밀착
  • 나쁨: 양끝에서 휨

 

대부분의 점이 가운데 45도 선을 가깝게 따라가는 QQ 플롯

가운데는 45도 선을 따르나 양끝에서 점들이 안쪽으로 휘어 곡선을 이루는 QQ 플롯

Python으로 배우는 실험 설계

정규성 검정

 

  • Shapiro–Wilk (소표본에 적합)
  • D'Agostino $K^2$ (첨도, 왜도 사용)
  • Anderson–Darling (临계값 목록 반환)

 

$H_0$ = "데이터는 정규분포에서 나왔다"

Python으로 배우는 실험 설계

Shapiro–Wilk 검정

 

from scipy.stats import shapiro
alpha = 0.05

stat, p = shapiro(salaries['salary']) print(f"p: {round(p,4)} test stat: {round(stat,4)}")
p: 0.8293 test stat: 0.9956
  • p > alpha
    • $H_0$ 기각 실패 → 정규일 가능성 높음
Python으로 배우는 실험 설계

Anderson–Darling 검정

from scipy.stats import anderson
result = anderson(x=salaries['salary'], dist="norm")
print(round(result.statistic,4))
print(result.significance_level)
print(result.critical_values)
0.2748
[15.  10.   5.   2.5  1. ]
[0.572 0.651 0.781 0.911 1.084]
  • 0.2748 < [0.572 0.651 0.781 0.911 1.084]
    • $H_0$ 기각 실패 → 정규일 가능성 높음
Python으로 배우는 실험 설계

연습해 봅시다!

Python으로 배우는 실험 설계

Preparing Video For Download...