파이썬에서 정규성 검정하기
2020. 3. 22. 20:09ㆍ분석 Python/구현 및 자료
## shapiro , normaltest
shapiro가 노말 분포 검정할 때 가장 엄격하게 한다고 함.
from scipy.stats import shapiro , normaltest , anderson , kstest
normal = []
notnormal = []
for var in num_var :
stat, p = shapiro(train[var].dropna().values)
stat, p = normaltest(train[var].dropna().values)
alpha = 0.05
if p > alpha :
normal.append(var)
else :
notnormal.append(var)
## kstest
분포 2개를 비교하는 것이므로, 어떤 분포에서도 사용 가능하므로, 노말에서도 사용 가능함.
normal = []
notnormal = []
for var in num_var :
stat,p = kstest(train[var].dropna().values, "norm")
alpha = 0.05
if p > alpha :
normal.append(var)
else :
notnormal.append(var)
## anderson
kstest와 같이 어떤 분포라도 비교 가능함. 기존 분포를 알고 있는 경우 ks test보다 더 정교하게 비교가 가능함.
비교 가능한 분포로는 {’norm’,’expon’,’logistic’,’gumbel’,’gumbel_l’, gumbel_r’, ‘extreme1’}
normal = []
notnormal = []
for var in num_var :
result = anderson(train[var].dropna().values)
normality = 0
for i in range(len(result.critical_values)):
sl, cv = result.significance_level[i], result.critical_values[i]
if result.statistic < result.critical_values[i]:
normality +=1
else :
normality +=0
if normality > 2.5 :
normal.append(var)
else :
notnormal.append(var)
좀 더 자세한 것은 아래 글 참고!
https://machinelearningmastery.com/a-gentle-introduction-to-normality-tests-in-python/
728x90
'분석 Python > 구현 및 자료' 카테고리의 다른 글
[Python] dict 에서 RuntimeError: dictionary changed size during iteration 해결하는 방법 (0) | 2020.04.11 |
---|---|
[Python] self 에 대해서 알아보기 (__init__ , __new__) (0) | 2020.04.09 |
nvidia-smi 보다 더 자세한 정보를 알려주는 nvidia-htop + python script 확장자 없이 사용하기 (0) | 2020.03.05 |
[ Python ] 현재 Jupyter notebook의 Python Path는? (0) | 2020.02.08 |
[ Python ] class에 동적으로 객체 추가하는 방법 (0) | 2020.02.08 |