-
t-test 검정 문제(1) 정규성 확인Python 데이터 분석 2022. 11. 8. 17:14
[two-sample t 검정 : 문제1]
다음 데이터는 동일한 상품의 포장지 색상에 따른 매출액에 대한 자료이다.
포장지 색상에 따른 제품의 매출액에 차이가 존재하는지 검정하시오.
blue : 70 68 82 78 72 68 67 68 88 60 80
red : 60 65 55 58 67 59 61 68 77 66 66
작성자 코드
# [two-sample t 검정 : 문제1] # 다음 데이터는 동일한 상품의 포장지 색상에 따른 매출액에 대한 자료이다. # 포장지 색상에 따른 제품의 매출액에 차이가 존재하는지 검정하시오. import numpy as np import scipy.stats as stats import pandas as pd import matplotlib.pyplot as plt # 귀무 : 포장지 색상에 따른 제품의 매출액에 차이가 없다. # 대립 : 포장지 색상에 따른 제품의 매출액에 차이가 있다. blue = [70, 68, 82, 78, 72, 68, 67, 68, 88, 60, 80] red = [60, 65, 55, 58, 67, 59, 61, 68, 77, 66, 66] print(np.mean(blue), ' ', np.mean(red)) # 72.8181 vs 63.81818 print(stats.shapiro(blue)) # pvalue=0.51023 > 0.05 이므로 정규성 만족 print(stats.shapiro(red)) # pvalue=0.53479 > 0.05 이므로 정규성 만족 two_sample = stats.ttest_ind(blue, red) # 두 개의 표본에 대한 t-test 실시 print(two_sample) # Ttest_indResult(statistic=2.9280203225212174, pvalue=0.008316545714784403 # 해석 : pvalue = 0.00831 < 0.05 이므로 귀무 기각. 포장지 색상에 따른 제품의 매출액에 차이가 있다. <console> 72.81818181818181 63.81818181818182 ShapiroResult(statistic=0.9391219615936279, pvalue=0.5102316737174988) ShapiroResult(statistic=0.9412071704864502, pvalue=0.534792423248291) Ttest_indResult(statistic=2.9280203225212174, pvalue=0.008316545714784403)
다른 방법 코드
import numpy as np import scipy.stats as stats import pandas as pd import matplotlib.pyplot as plt from numpy import average # [two-sample t 검정 : 문제1] # 다음 데이터는 동일한 상품의 포장지 색상에 따른 매출액에 대한 자료이다. # 포장지 색상에 따른 제품의 매출액에 차이가 존재하는지 검정하시오. blue = [70, 68, 82, 78, 72, 68, 67, 68, 88, 60, 80] red = [60, 65, 55, 58, 67, 59, 61, 68, 77, 66, 66] # 귀무 : 동일한 상품의 포장지 색상에 따른 제품의 매출액 차이가 없다. # 대립 : 동일한 상품의 포장지 색상에 따른 제품의 매출액 차이가 있다. print(average(blue), ' ', average(red)) # 72.81 63.81 print(72.81 - 63.81) # 차이 : 9.0 two_sample1 = stats.ttest_ind(blue, red) # 두 개의 표본에 대한 t-test 실시 print(two_sample1) # statistic=2.9280203225212174, pvalue=0.008316545714784403 #=========================================================================================== # 해석 : pvalue=0.00831 < 0.05 보다 작으므로 귀무가설 기각. 동일한 상품의 포장지 색상에 따른 제품의 매출액 차이가 있다. #=========================================================================================== <console> 72.81818181818181 63.81818181818182 9.0 Ttest_indResult(statistic=2.9280203225212174, pvalue=0.008316545714784403)
[two-sample t 검정 : 문제2]
아래와 같은 자료 중에서 남자와 여자를 각각 15명씩 무작위로 비복원 추출하여 혈관 내의 콜레스테롤 양에 차이가 있는지를 검정하시오.
남자 : 0.9 2.2 1.6 2.8 4.2 3.7 2.6 2.9 3.3 1.2 3.2 2.7 3.8 4.5 4 2.2 0.8 0.5 0.3 5.3 5.7 2.3 9.8
여자 : 1.4 2.7 2.1 1.8 3.3 3.2 1.6 1.9 2.3 2.5 2.3 1.4 2.6 3.5 2.1 6.6 7.7 8.8 6.6 6.4
랜덤으로 15개를 뽑아야 하기 때문에 random 함수를 사용한다.
# [two-sample t 검정 : 문제2] # 아래와 같은 자료 중에서 남자와 여자를 각각 15명씩 무작위로 비복원 추출하여 혈관 내의 콜레스테롤 양에 차이가 있는지를 검정하시오. # 귀무 : 혈관 내의 콜레스테롤 양에 차이가 없다. # 대립 : 혈관 내의 콜레스테롤 양에 차이가 있는 있다. man = [0.9, 2.2, 1.6, 2.8, 4.2, 3.7, 2.6, 2.9, 3.3, 1.2, 3.2, 2.7, 3.8, 4.5, 4, 2.2, 0.8, 0.5, 0.3, 5.3, 5.7, 2.3, 9.8] woman = [1.4, 2.7, 2.1, 1.8, 3.3, 3.2, 1.6, 1.9, 2.3, 2.5, 2.3, 1.4, 2.6, 3.5, 2.1, 6.6, 7.7, 8.8, 6.6, 6.4] import random random.seed(123) man = random.sample(man, 15) # 무작위로 15명 비복원 추출 woman = random.sample(woman, 15) # 무작위로 15명 비복원 추출 print(np.mean(man), ' ', np.mean(woman)) # 3.22 vs 3.27 print(stats.shapiro(man)) # pvalue=0.0376 < 0.05 이므로 정규성 불만족 print(stats.shapiro(woman)) # pvalue=0.0014 < 0.05 이므로 정규성 불만족 # two_sample2 = stats.ttest_ind(man, woman) # 두 개의 표본에 대한 t-test 실시, 정규성 만족이 아니기 때문에 이 방법은 안 된다. # print(two_sample2) print(stats.wilcoxon(man, woman)) # 정규성 만족이 안 될 때 이 방법을 사용한다. # statistic=59.0, pvalue=0.97796630859375 # 해석 : pvalue=0.97796 > 0.05 이므로 귀무 채택. 혈관 내의 콜레스테롤 양에 차이가 없다. <console> 3.220000000000001 3.273333333333334 ShapiroResult(statistic=0.873214602470398, pvalue=0.0376255065202713) ShapiroResult(statistic=0.7687029838562012, pvalue=0.0014988253824412823) WilcoxonResult(statistic=59.0, pvalue=0.97796630859375)
중요! 정규성 불만족일 경우에는 stats.wilcoxon() 함수를 사용하여 pvalue를 계산한다. 불만족이 나올 수도 있으니 정규성 검사는 꼭 필요하다.
정규성을 만족하지 않는 경우 두 가지 방법이 있다.
result2 = stats.wilcoxon(sco1, sco2)
result2 = stats.mannwhitneyu(sco1, sco2)'Python 데이터 분석' 카테고리의 다른 글
Python 데이터분석 기초 36 - 세 개 이상의 모집단에 대한 가설검정 – 분산분석(ANOVA), 사후검정 (0) 2022.11.09 t-test 검정 문제(2) DB 예제, 정규성 확인 (0) 2022.11.08 서로 대응인 두 집단의 평균 차이 검정(paired samples t-test) 예제 (0) 2022.11.08 Python 데이터분석 기초 35 - 서로 대응인 두 집단의 평균 차이 검정(paired samples t-test) (0) 2022.11.08 Python 데이터분석 기초 35 - 어느 음식점 매출 자료와 날씨 자료를 활용하여 강수 여부에 따른 매출액 평균에 차이를 검정 (0) 2022.11.08