-
이원카이제곱 동질성 검정실습(2)Python 데이터 분석 2022. 11. 7. 11:30
이원카이제곱
동질성 검정 - 두 집단의 분포가 동일한가? 다른 분포인가? 를 검증하는 방법이다. 두 집단 이상에서 각 범주(집단) 간의 비율이 서로 동일한가를 검정하게 된다. 두 개 이상의 범주형 자료가 동일한 분포를 갖는 모집단에서 추출된 것인지 검정하는 방법이다.동질성 검정 실습2)
연령대별 sns 이용률의 동질성 검정 20대에서 40대까지 연령대별로 서로 조금씩 그 특성이 다른 SNS 서비스들에 대해 이용 현황을 조사한 자료를 바탕으로 연령대별로 홍보 전략을 세우고자 한다. 연령대별로 이용 현황이 서로 동일한지 검정해 보도록 하자.
# 이원카이제곱 # 동질성 검정 - 두 집단의 분포가 동일한가? 다른 분포인가? 를 검증하는 방법이다. 두 집단 이상에서 각 범주(집단) 간의 비율이 서로 # 동일한가를 검정하게 된다. 두 개 이상의 범주형 자료가 동일한 분포를 갖는 모집단에서 추출된 것인지 검정하는 방법이다. import pandas as pd import scipy.stats as stats # 동질성 검정실습) 교육방법에 따른 교육생들의 만족도 분석 - 동질성 검정 survey_method.csv data = pd.read_csv("https://raw.githubusercontent.com/pykwon/python/master/testdata_utf8/survey_method.csv") print(data.head(3)) print(data.method.unique()) # [1 2 3] print(data.survey.unique()) # [1 2 3 4 5] # 귀무 : 교육방법에 따른 교육생들의 만족도에 차이가 없다. # 대립 : 교육방법에 따른 교육생들의 만족도에 차이가 있다. ctab = pd.crosstab(index = data.method, columns = data.survey) ctab.columns = ['매우만족', '만족', '보통', '불만족', '매우불만족'] ctab.index = ['방법1', '방법2' ,'방법3'] print(ctab) chi2, p, ddof, _ = stats.chi2_contingency(ctab) print('chi2:{}, p:{}, ddof:{}'.format(chi2, p, ddof)) # chi2:6.544667820529891, p:0.5864574374550608, ddof:8 # 해석 : p:0.58645 > 0.05 이므로 귀무 채택. 교육방법에 따른 교육생들의 만족도에 차이가 없다. print('-----------------') # 동질성 검정 실습2) 연령대별 sns 이용률의 동질성 검정 # 20대에서 40대까지 연령대별로 서로 조금씩 그 특성이 다른 SNS 서비스들에 대해 이용 현황을 조사한 자료를 바탕으로 연령대별로 홍보 # 전략을 세우고자 한다. # 연령대별로 이용 현황이 서로 동일한지 검정해 보도록 하자. # 귀무 : 연령대별로 SNS 서비스 이용 현황은 서로 동일하다. # 대립 : 연령대별로 SNS 서비스 이용 현황은 서로 동일하지 않다. data2 = pd.read_csv('../testdata/snsbyage.csv') print(data2.head(3), len(data2)) print(data2['age'].unique()) # [1(20대) 2(30대) 3(40대)] print(data2['service'].unique()) # ['F' 'T' 'K' 'C' 'E'] ctab2 = pd.crosstab(index = data2.age, columns = data2.service) print(ctab2) chi2, p, ddof, _ = stats.chi2_contingency(ctab2) print('chi2:{}, p:{}, ddof:{}'.format(chi2, p, ddof)) # chi2:102.75202494484225, p:1.1679064204212775e-18, ddof:8 # 해석 : p:1.1679064204212775e-18 < 0.05 이므로 귀무 기각 # 1439명을 대상으로 SNS 서비스 연령대별 이용 현황이 서로 동일한지 검정해 보았다. # 그 결과 연령대별로 SNS 서비스 이용 현황은 서로 동일하지 않다. <console> no method survey 0 1 1 1 1 2 2 2 2 3 3 3 [1 2 3] [1 2 3 4 5] 매우만족 만족 보통 불만족 매우불만족 방법1 5 8 15 16 6 방법2 8 14 11 11 6 방법3 8 7 11 15 9 chi2:6.544667820529891, p:0.5864574374550608, ddof:8 ----------------- age service 0 1 F 1 1 F 2 1 F 1439 [1 2 3] ['F' 'T' 'K' 'C' 'E'] service C E F K T age 1 81 16 207 111 117 2 109 15 107 236 104 3 32 17 78 133 76 chi2:102.75202494484225, p:1.1679064204212775e-18, ddof:8
p-value 값이 1.1679064204212775e-18라고 적혀있는데 이것은 0.05보다 작다는 의미이다. e-18때문.
'Python 데이터 분석' 카테고리의 다른 글
Python 데이터분석 기초 32 - t-test(집단 간 차이분석: 평균 또는 비율 차이를 분석), 실습 예제 1) 단일 표본 t 검정 (one-sample t- test) (0) 2022.11.07 카이제곱 검정 + 웹 연습 문제 (0) 2022.11.07 이원카이제곱 동질성 검정실습(1) (0) 2022.11.07 가설검정 카이제곱 연습 문제(2) (0) 2022.11.07 가설검정 카이제곱 문제 연습(1) (0) 2022.11.07