# pandas 라이브러리의 crosstab 함수를 통해, 두 범주형 자료의 빈도표를 생성
result = pd.crosstab(df['Gender'], df['Size'])
result
가설검정 1
# 카이제곱검정을 stat 함수를 통해 구현
# chi2_contingency를 통해, 카이제곱통계량, p-value를 출력
stats.chi2_contingency(observed = result)
# 각 값들을 별도로 보기
# 카이제곱 검정통계량, pvalue, 자유도 확인
print('검정통계량:', stats.chi2_contingency(observed=result)[0])
검정통계량: 6.615107840598039
print('p-value:', stats.chi2_contingency(observed=result)[1])
p-value: 0.08523181331915766
# p-value 는 우연에 의해 나타날 확률에 대한 지표.
# p-value가 0.05 보다 크다 = 우연히 일어났을 가능성이 높다 = 인과관계가 없다고 추정
# 여기서 p-value 값은 0.05 보다 크므로, 연관성이 없다고 추정.
# 대립가설 기각
# 귀무가설 채택
# 귀무가설: 성별과 구매Size 에는 관련성이 없을 것이다 (독립적일 것이다)
가설검정 2
#자유도와 유의수준을 통해 귀무가설 기각 여부를 판단하기도 합니다.
#(변수1 그룹의 수-1)*(변수2 그룹의 수-1)
#(성별 2개 - 1 ) * (옷 사이즈 4개 -1 )
# 1*3 = 3 이 도출.
print('자유도:', stats.chi2_contingency(observed=result)[2])
자유도: 3
# x 축은 유의수준, y 축은 자유도.
# 자유도3, 유의수준을 0.05 로 본다면, 7.81 검정통계량.
# 구한 카이제곱 검정통계량은 6.615 이므로 7.81 보다 작다.
# 표에 명시된 기준보다 값이 작을 경우 대립가설을 기각.
# 대립가설 기각