Python 데이터 분석
Python 데이터분석 기초 30 - 가설검정 - 일원카이제곱 이(stats.chisquare()) 예제 , 선호도 분석 실습
코딩탕탕
2022. 11. 4. 16:30
# 카이제곱검정 중 일원카이제곱
# : 관찰도수가 기대도수와 일치하는 지를 검정하는 방법
# : 종류 : 적합도/선호도 검정
# - 범주형 변수가 한 가지로, 관찰도수가 기대도수에 일치하는지 검정한다.
# 적합도 검정
# : 자연현상이나 각종 실험을 통해 관찰되는 도수들이 귀무가설 하의 분포(범주형 자료의 각 수준별 비율)에 얼마나 일치하는가에 대한
# 분석을 적합도 검정이라 한다.
# : 관측값들이 어떤 이론적 분포를 따르고 있는지를 검정으로 한 개의 요인을 대상으로 함.
# <적합도 검정실습>
# 주사위를 60 회 던져서 나온 관측도수 / 기대도수가 아래와 같이 나온 경우에 이 주사위는 적합한 주사위가 맞는가를 일원카이제곱 검정
# 으로 분석하자
# 주사위 눈금 1 2 3 4 5 6
# 관측도수 4 6 17 16 8 9
# 기대도수 10 10 10 10 10 10
# 수집된 데이터를 바탕으로 기대도수(기준, 상식, 귀무가설)를 바탕으로 대립가설 세우기
# 귀무 가설 : 기대치와 관찰치는 차이가 없다. 현재 주사위는 게임에 적합하다. 보수적
# 대립 가설 : 기대치와 관찰치는 차이가 있다. 현재 주사위는 게임에 적합하지 않다. 적극적
# 일원카이제곱 stats.chisquare(관찰빈도, 예상빈도) 편도카이제곱
import pandas as pd
import scipy.stats as stats
data = [4, 6, 17, 16, 8, 9]
# data = [11, 6, 10, 13, 8, 12]
result = stats.chisquare(f_obs = data)
print(result)
print('chi2 : {}, p-value : {}'.format(result.statistic, result.pvalue))
print('statistic : %.5f, p-vlaue : %.5f'%(result)) # statistic : 14.20000, p-vlaue : 0.01439 반비례
# 판정 : p-vlaue : 0.01439 < 0.05 이므로 귀무 기각
# 기대치와 관찰치는 차이가 있다. 현재 주사위는 게임에 적합하지 않다. 현재 관찰된 데이터는 우연히 발생한 데이터가 아니다.
# cv로 판정 df : ? (N - 1) = 5 cv : ? 11.07(카이제곱표 확인) statistic : 14.2 statstic 이 cv보다 크기때문에 대립가설 적합
print('----선호도----')
# <선호도 분석 실습> 5개의 스포츠 음료에 대한 선호도에 차이가 있는지 검정하기
# 귀무 : 스포츠 음료에 대한 선호도에 차이가 없다.
# 대립 : 스포츠 음료에 대한 선호도에 차이가 있다.
datas = pd.read_csv('../testdata/drinkdata.csv')
print(datas)
print(sum(datas.관측도수))
print(stats.chisquare(datas.관측도수))
# statistic=20.488188976377952, pvalue=0.00039991784008227264 < 0.05 이므로 귀무기각
# 스포츠 음료에 대한 선호도에 차이가 있다. 그러므로 특정음료 제공을 더 많이 할 수 있도록 한다.
<console>
Power_divergenceResult(statistic=14.200000000000001, pvalue=0.014387678176921308)
chi2 : 14.200000000000001, p-value : 0.014387678176921308
statistic : 14.20000, p-vlaue : 0.01439
----선호도----
음료종류 관측도수
0 s1 41
1 s2 30
2 s3 51
3 s4 71
4 s5 61
254
Power_divergenceResult(statistic=20.488188976377952, pvalue=0.00039991784008227264)
가설검정을 할 경우에는 p-value가 0.05보다 작으면 귀무가설 기각, 대립가설 채택이다.
전에 배웠던 데이터의 신뢰도를 확인하기 위한 p-value와는 다르게 생각해야 된다.