통계 초보자를 위한 독립표본 t-검정 가이드: 두 집단의 평균은 정말 다를까?
독립표본 t-검정이란 무엇인가?
독립표본 t-검정(Independent two-sample t-test)은 서로 독립적인 두 집단의 평균이 같은지를 검정하는 통계적 방법입니다.
여기서 독립적이라는 의미는 한 집단의 관측값이 다른 집단의 관측값에 영향을 주지 않는 상태를 말합니다.
예를 들어 다음과 같은 질문에 답하기 위해 사용됩니다.
- 남성과 여성의 평균 키는 차이가 있을까?
- A 지역과 B 지역의 평균 소득은 다를까?
- 두 가지 방법 중 어느 쪽이 더 효과적일까?
단순히 평균값이 다르다고 해서 통계적으로 의미 있는 차이라고 말할 수는 없습니다.
독립표본 t-검정은 이러한 차이가 우연히 발생했을 가능성을 함께 고려하여 판단합니다.
가설 설정
독립표본 t-검정의 기본 가설은 다음과 같습니다.
- 귀무가설(H0): 두 집단의 평균은 같다. (μA = μB)
- 대립가설(H1): 두 집단의 평균은 다르다. (μA ≠ μB)
분석 목적에 따라 대립가설을
μA > μB 또는 μA < μB 와 같이 단측 가설로 설정할 수도 있습니다.
분석 절차 개요
독립표본 t-검정은 다음과 같은 절차로 진행됩니다.
- 각 집단에 대한 정규성 검정
- 정규성 만족 시, 등분산 검정
- 조건에 따라 적절한 검정 방법 선택
- 정규성 미만족 → 윌콕슨 순위합 검정
- 정규성 만족 + 등분산 → 등분산 t-검정
- 정규성 만족 + 이분산 → Welch t-검정
1단계: 정규성 검정
표본의 크기에 따라 서로 다른 정규성 검정을 사용합니다.
표본 크기 5000 미만: Shapiro-Wilk 검정
import scipy.stats as stats
stat, p = stats.shapiro(data)
print(p)
p-value가 0.05 이상이면 정규성 가정을 만족한다고 봅니다.
표본 크기 5000 이상: Anderson-Darling 검정
import scipy.stats as stats
result = stats.anderson(data, dist='norm')
print(result.statistic, result.critical_values)
검정통계량이 유의수준 5%에 해당하는 임계값보다 작으면 정규성을 만족한다고 판단합니다.
Case 1: 정규성 가정을 만족하지 못한 경우
두 집단 중 하나라도 정규성 가정을 만족하지 못하면
비모수 검정 방법인 **윌콕슨 순위합 검정(Wilcoxon rank-sum test)**을 사용합니다.
import scipy.stats as stats
stat, p = stats.ranksums(data1, data2)
print(stat, p)
p-value가 0.05보다 작다면
두 집단의 분포(중앙 경향)에 통계적으로 유의한 차이가 있다고 해석합니다.
2단계: 등분산 검정
정규성 가정이 만족되었다면, 두 집단의 분산이 같은지 확인해야 합니다.
실무에서는 정규성에 덜 민감한 Levene 검정이 주로 사용됩니다.
import scipy.stats as stats
stat, p = stats.levene(data1, data2, center='median')
print(p)
p-value가 0.05 이상이면 등분산 가정을 만족한다고 판단합니다.
Case 2: 정규성 만족 + 등분산 가정 충족
등분산 가정이 충족되면 기본적인 독립표본 t-검정을 수행합니다.
import scipy.stats as stats
stat, p = stats.ttest_ind(data1, data2, equal_var=True)
print(stat, p)
p-value가 0.05보다 작다면
두 집단의 평균 차이는 통계적으로 유의하다고 판단합니다.
Case 3: 정규성 만족 + 이분산인 경우
등분산 가정이 충족되지 않는 경우에는 Welch t-검정을 사용합니다.
import scipy.stats as stats
stat, p = stats.ttest_ind(data1, data2, equal_var=False)
print(stat, p)
Welch t-검정은 분산이 다른 경우에도 안정적인 결과를 제공합니다.
단측 검정이 필요한 경우
SciPy의 t-test는 기본적으로 양측 검정을 수행하므로,
단측 검정이 필요한 경우 p-value를 직접 변환합니다.
stat, p_two = stats.ttest_ind(data1, data2, equal_var=False)
# H1: μA > μB
p_one = p_two / 2 if stat > 0 else 1 - (p_two / 2)
마무리하며
독립표본 t-검정은 두 집단을 비교하는 가장 기본적인 통계 분석 도구입니다.
중요한 것은 단순한 평균 차이가 아니라,
그 차이가 우연인지 아닌지를 통계적으로 판단하는 데 있습니다.
정규성, 등분산 가정을 순서대로 확인하고
상황에 맞는 검정 방법을 선택하는 것이 올바른 분석의 핵심입니다.