본문 바로가기
Machine Learning/Statistics

[기초 통계] 독립표본 T-검정

by ISLA! 2023. 8. 14.

가설 설정

  • 귀무가설 : 그룹 1의 평균과 그룹 2의 평균은 같다.
  • 대립가설 : 그룹 1의 평균과 그룹 2의 평균은 같지 않다.

 

가정

  • 독립성
  • 정규성 : 각 그룹의 표본수가 𝑁 ≤ 30 이하일 때, 검정해야 함
    • Shapiro-Wilk tests로 확인
  • 분산의 동질성(등분산성)

 

실습

  • 데이터 : toothgrowth.csv
    • 기니피그 60마리의 치아 길이, 투여한 비타민 C 종류, 투여량이 저장
    • len : 치아의 길이
    • supp : 투여한 약제(VC: 아스코르브산, OJ: 오렌지주스)
    • does : 투여량

 

t-test 미션

오렌지주스를 투여받은 기니피그의 치아 길이 평균이 아스코르브산을 투여받은 기니피그의 치아 길이 평균과 일치하는지 t-검정(Two Sample t-test)를 통해 확인

 

1. 데이터 확인

import pandas as pd
df = pd.read_csv('toothgrowth.csv')

df.head()

df.groupby('supp')['len'].agg(['mean', 'std', 'count']).reset_index()

2. 가설 설정

  • 귀무가설 : 투여한 약제별로 평균 치아 길이는 같다
  • 대립가설 : 투여한 약제별 평균 치아 길이는 같지 않다(차이가 있다)

 

3. 정규성 검증

  • 두 데이터 모두 n이 30 이상이므로 skip

 

4. 등분산성 검정

from scipy import stats
stats.levene(df.loc[df['supp'] == "VC", 'len'], df.loc[df['supp'] == "OJ", 'len'])

>> LeveneResult(statistic=1.2135720656945064, pvalue=0.2751764616144053)

 

5. t-test

  • 두 독립 샘플의 평균(예상) 값이 동일하다는 귀무가설에 대한 검정.
  • 두 집단의 분산이 동일하다고 가정함.
from scipy import stats
t_score, p_value = stats.ttest_ind(df.loc[df['supp'] == "VC", 'len'],
					df.loc[df['supp'] == "OJ", 'len'],
                                    	equal_var = True
                                    
print(round(t_score, 4), round(p_value, 2))
>>> -1.9153 0.06
  • 메서드 설명 : ttest_ind(a, b, equal_var)
    • a, b : 데이터 크기가 동일해야 함
    • equal_var : True(independent t-test), False(Welch's t-test)

 

6. 결과 해석

  • p-value를 먼저 확인하여 통계적 유의성 여부를 판단한 다음, 검정 통계량을 이용하여 평균 차이의 크기를 파악
    • 만약 p-value가 유의수준보다 크다면, 두 그룹 간에는 통계적으로 유의미한 차이가 없다고 해석
    • 이 경우, 귀무가설 채택 => 두 그룹의 평균이 유의미하게 차이 없음
    • 검정 통계량의 절댓값이 클수록 두 그룹의 평균 차이가 크다
    • 이 경우, t 통계량이 -1.91로, 검정 통계량의 절댓값이 비교적 작음. 이는 두 그룹 간의 평균 차이가 크지 않다는 것을 의미

 

728x90