Python 데이터 분석
Python 데이터분석 기초 41 - 이항검정(양측검정, 단측검정)
코딩탕탕
2022. 11. 10. 10:14
이항검정 : 결과가 두 가지 값을 가지는 확률변수의 분포(이항분포)를 판단하는데 효과적.
정규분포는 연속변량인데 반해 이항분포는 이산변량
# 이항검정 : 결과가 두 가지 값을 가지는 확률변수의 분포(이항분포)를 판단하는데 효과적.
# 정규분포는 연속변량인데 반해 이항분포는 이산변량
# binom test
import pandas as pd
import scipy.stats as stats
# 귀무 : 직원을 대상으로 고객대응 교육 후 고객안내 서비스 만족율은 80%이다.
# 대립 : 직원을 대상으로 고객대응 교육 후 고객안내 서비스 만족율은 80%가 아니다.
data = pd.read_csv('../testdata/one_sample.csv')
print(data.head(3))
print(data.survey.unique()) # [1 0] # data['survey'].unique()
ctab = pd.crosstab(index = data['survey'], columns = 'count')
ctab.index = '불만족', '만족'
print(ctab) # 만족 : 136, 불만족 : 14
print('\n양측 검정 : 방향성이 없다.')
x = stats.binom_test([136, 14], p = 0.8, alternative = 'two-sided') # p는 만족율 확률값이다.
print(x) # p-value : 0.0006734 < 0.05 이므로 귀무 기각.
# 직원을 대상으로 고객대응 교육 후 고객안내 서비스 만족율은 80%가 아니다.
x = stats.binom_test([14, 136], p = 0.2, alternative = 'two-sided') # p는 불만족율 확률값이다.
print(x)
print('\n단측 검정 : 방향성이 있다. 크다, 작다')
# 만족값이 클거라 가정하고 greater를 선언!
x = stats.binom_test([136, 14], p = 0.8, alternative = 'greater') # p는 만족율 확률값이다.
print(x)
# p-value : 0.0003179 < 0.05 이므로 귀무 기각.
# 고객안내 서비스 만족율은 80%보다 크다.
print()
# 불만족값이 작을거라 가정하고 less를 선언!
x = stats.binom_test([14, 136], p = 0.2, alternative = 'less') # p는 만족율 확률값이다.
print(x)
# p-value : 0.0003179 < 0.05 이므로 귀무 기각.
# 고객안내 서비스 불만족율은 20%보다 작다.
<console>
no gender survey time
0 1 2 1 5.1
1 2 2 0 5.2
2 3 2 1 4.7
[1 0]
col_0 count
불만족 14
만족 136
양측 검정 : 방향성이 없다.
0.0006734701362867024
0.0006734701362867063
단측 검정 : 방향성이 있다. 크다, 작다
0.00031794019219854805
0.00031794019219854924