ADP/통계분석

[통계분석] 예제로 풀어보는 t-검정

rtw0202 2024. 10. 11. 13:27
728x90

일표본 t-검정

표본 평균과 특정 기준값(모집단의 가설적 평균)을 비교할 때 사용

cats 데이터에서 고양이들의 평균 몸무게가 2.6kg인지 아닌지 통계적 검정을 수행하여라. (양측검정, 유의수준 = 0.05) 

 

1. 가설설정

귀무가설 : 고양이들의 평균 몸무게는 2.6kg이다.

대립가설 : 고양이들의 평균 몸무게는 2.6kg이 아니다.

 

2. 유의수준 설정 (0.05) 

문제에서 제시된 0.05 사용

 

3. 정규성 검정

from scipy.stats as stats

stats.shapiro(cats['Bwt'])

# 출력값
# ShapiroResult(statistic=0.9788323948987693, pvalue=0.11896203410780715)

=> p-value가 유의수준(0.05)보다 크기 때문에 '데이터는 정규성을 만족한다'라는 귀무가설 채택

 

4.  검정통계량 값 및 p-value(유의확률) 계산

stats.ttest_1samp(cats['Bwt'], popmean=2.6)

# 출력값
# TtestResult(statistic=6.320333521626425, pvalue=8.182334496617836e-09, df=96)

=> p-value가 유의수준(0.05)보다 기 때문에 '고양이들의 평균 몸무게는 2.6kg이 아니다'라는 대립가설 채택

 

728x90

대응표본 t-검정

동일한 집단의 두 번의 측정값(전후 변화)을 비교할 때 사용

10명의 환자를 대상으로 수면영양제 복용 전과 후의 수면시간을 측정하였다. 수면영양제의 효과가 있는지를 판단하여라.(유의수준 = 0.05) 

data = {'before':[7,3,4,5,2,1,6,6,5,4],
        'after':[8,4,5,6,2,3,6,8,6,5]}

data = pd.DataFrame(data)

 

1. 가설설정

귀무가설 : 수면영양제 복용 전과 후의 수면시간 차이는 없다.

대립가설 : 수면영양제 복용 전과 후의 수면시간 차이는 있다.

 

2. 유의수준 설정 (0.05) 

문제에서 제시된 0.05 사용

 

3. 정규성 검정

print(shapiro(data['before']))
print(shapiro(data['after']))

# 출력값
# ShapiroResult(statistic=0.9644595362997496, pvalue=0.8352703969642297)
# ShapiroResult(statistic=0.9456836842543015, pvalue=0.6177986322207938)

=> p-value가 유의수준(0.05)보다 크기 때문에 '데이터는 정규성을 만족한다'라는 귀무가설 채택

 

 

4. 검정통계량 값 및 p-value(유의확률) 계산

# data[after']의 평균이 data['before']의 평균보다 크다'라는 대립가설을 검정 (오른쪽 단측검정)
stats.ttest_rel(data['after'], data['before'], alternative='greater')

# 출력값
# TtestResult(statistic=4.743416490252569, pvalue=0.0005269356285082764, df=9)

 

=> p-value가 유의수준(0.05)보다 기 때문에 '수면영양제 복용 전과 후의 수면시간 차이는 있다'라는 대립가설 채택

 

 

독립표본 t-검정

두 개의 독립된 모집단의 평균을 비교할 때 사용

cats 데이터를 가지고 수컷인 고양이와 암컷인 고양이의 몸무게 차이가 있는지 통계적 검정을 수행하여라. (유의수준 = 0.05) 

 

1. 가설설정

귀무가설 : 수컷과 암컷 고양이의 몸무게 차이는 없다.

대립가설 : 수컷과 암컷 고양이의 몸무게 차이는 있다.

 

2. 유의수준 설정 (0.05) 

문제에서 제시된 0.05 사용

 

3. 정규성 검정

from scipy.stats as stats

stats.shapiro(cats['Bwt'])

# 출력값
# ShapiroResult(statistic=0.9788323948987693, pvalue=0.11896203410780715)

=> p-value가 유의수준(0.05)보다 크기 때문에 '데이터는 정규성을 만족한다'라는 귀무가설 채택

 

4. 등분산성 검정

stats.levene(female, male)

# 출력값
# LeveneResult(statistic=11.595109822909222, pvalue=0.0009703021630451993)

=> p-value가 유의수준(0.05)보다 작기 때문에 '데이터는 등분산성을 만족하지 않는다'라는 대립가설 채택

 

 

4. 검정통계량 값 및 p-value(유의확률) 계산

stats.ttest_ind(female, male, equal_var=False)

# 출력값
# TtestResult(statistic=-14.28231747651286, pvalue=8.827551869381693e-24, df=80.53697992844776)

=> 고양이의 성별에 따른 몸무게가 등분산성을 만족하지 않으므로 equal_var=False로 독립표본 t-검정을 진행함

=> p-value가 유의수준(0.05)보다 기 때문에 '수컷과 암컷 고양이의 몸무게 차이는 있다'라는 대립가설 채택

728x90