Independent sample t-test는 독립적인 두 표본집단의 평균 간의 차이에 대한 검정입니다.

t-test 관련 포스트


Independent sample t-test

When to use

Independent sample t-test는 독립적인 두 표본집단의 평균(means for two groups) 간 유의한 차이가 있는지 검정하는 통계적 방법입니다. 예를 들어, 한 섬에서 10명의 남자와 10명의 여자를 뽑아 각 집단의 휴대폰 사용 평균 시간이 유의한 차이가 있는지 보고 싶을 때, independent sample t-test를 사용합니다.

이 t-test의 귀무가설과 대립가설은 아래와 같습니다.

H0(귀무가설): µ1 = µ2 # 두 집단의 평균은 같다.
H1(대립가설): µ1 ≠ µ2 # 두 집단의 평균은 같지 않다.

Assumptions

Independent sample t-test는 parametric test(모수적 방법: 모집단 분포가 정규분포, 지수분포 등 특정 분포를 띈다는 가정 하에 접근하는 방법)입니다. 그러므로 t-test를 진행하기 전, 확인해야하는 가정들이 있습니다.

  • THe observations are independent of one another. - 독립성
  • The dependent variable should be approximately normally distributed. - 정규성
  • The variances of the dependent variable should be equal. - 등분산성

먼저 각 그룹의 데이터가 정규성을 지니는지 확인해야 합니다. 표본 집단의 데이터 수가 30 이상이면 중심극한정리에 의해 정규성을 만족한다고 가정할 수 있습니다. 실질적으로 정규성을 확인하는 방법은 아래와 같습니다.

(1) Q-Q scatterplot
Q-Q scatter plot은 데이터가 정규 분포를 따르는지 시각적으로 확인하는 방법입니다. 여기서 Q는 Quantile(분위수)를 의미하며, Q-Q scatter plot에서는 동일 분위수에 해당하는 정상 분포의 값과 분석하고자하는 분포의 값을 한 쌍으로 만들어 시각화합니다. 이를 통해 분석하고자 하는 샘플의 분포와 정규분포의 분포 형태를 비교할 수 있습니다. plot의 형태가 왼쪽 아래에서 오른쪽 위로 올라가는 직선의 형태에 가까울 수록 정규성을 지닌다고 할 수 있습니다.

(2) Shapiro-Wilk Test
Shapiro-Wilk Test는 정규성을 확인하는 검정 방법입니다. 이 검정에서 귀무가설은 표본 집단의 데이터가 정규분포를 지닌 모집단에서 비롯되었다는 것입니다. 검정 결과 p-value가 유의수준(주로 0.05)보다 낮다면, 귀무가설은 기각되고 데이터가 정규 분포를 지니지 않는다는 대립가설이 채택되기 때문에 p-value가 유의수준보다 높은 것이 좋습니다.

만약 위 방법을 통해 데이터가 정규성을 지니지 않음을 확인하게 되면, independent sample t-test 대신 비모수적 방법인 Mann-Whitney test를 사용해야 합니다.

더불어 서로 다른 그룹을 비교하고자 할때, 기본적으로 두 그룹의 데이터가 분산이 같다는 등분산성을 만족해야합니다. 주로 각 그룹의 데이터 수가 비교적 비슷하면, 이 가정은 크게 중요하지 않습니다. 등분산성은 Levene’s test를 통해 확인할 수 있습니다. 등분산성 가정이 만족되지 못할 때는 Welch t-test(Unequal variance t-test; Separate variances t-test)를 활용할 수 있습니다.


How to use

Python으로 independent sample t-test를 하기 위해서 scipy.stats.ttest_ind를 활용합니다.

현재 t-test로 알고 싶은 문제는 위에서 언급한 예제 그대로를 활용하여 ‘한 섬에 10명의 남자와 10명의 여자를 뽑아 각 집단의 휴대폰 사용 평균 시간이 유의한 차이가 있는가’입니다.

데이터는 남자 10명의 휴대폰 사용 시간이 담긴 male과 여성 10명의 휴대폰 사용 시간이 담긴 female, 2 개의 list를 numpy.random.normal(정규분포로부터 난수 샘플 생성)을 활용하여 만들었습니다.

from scipy import stats
import numpy as np

# generate two lists
male = [np.random.normal(120, 20) for _ in range(10)] # 평균 120, 표준편차 20으로 하는 정규분포에서 10개의 난수 샘플 생성
female = [np.random.normal(100,20) for _ in range(10)] # 평균 100, 표준편차 20으로 하는 정규분포에서 10개의 난수 샘플 생성

# perform independent sample t-test
tTestResult = stats.ttest_ind(male, female)

# print result
print("The T-statistic is %.3f and the p-value is %.3f" % tTestResult)

t-test 결과는 아래와 같이 나옵니다.

The T-statistic is 3.360 and the p-value is 0.003

p-value가 0.05보다 낮으므로, 귀무가설이 기각되고 H1(대립가설): µ1 ≠ µ2 # 두 집단의 평균은 같지 않다.가 채택됩니다.

Reference: https://www.spss-tutorials.com/independent-samples-t-test/ https://libguides.library.kent.edu/SPSS/IndependentTTest