DATA GROUND 로고DATA GROUND
통계 기초

통계 초보자를 위한 독립표본 t-검정 가이드: 두 집단의 평균은 정말 다를까?

S.H. Yoo
마지막 업데이트: 2024-03-26

독립표본 t-검정은 서로 다른 두 집단의 평균 차이가 우연인지 실제 차이인지를 판단하는 통계 기법입니다. 정규성·등분산 검정부터 각 경우별 Python 코드까지 단계별로 설명합니다.

작성일: 2024-03-26작성자: S.H. Yoo마지막 업데이트: 2024-03-26

독립표본 t-검정이란 무엇인가?

독립표본 t-검정(Independent two-sample t-test)은 서로 독립적인 두 집단의 평균이 같은지를 검정하는 통계적 방법입니다.
여기서 독립적이라는 의미는 한 집단의 관측값이 다른 집단의 관측값에 영향을 주지 않는 상태를 말합니다.

예를 들어 다음과 같은 질문에 답하기 위해 사용됩니다.

  • 남성과 여성의 평균 키는 차이가 있을까?
  • A 지역과 B 지역의 평균 소득은 다를까?
  • 두 가지 방법 중 어느 쪽이 더 효과적일까?

단순히 평균값이 다르다고 해서 통계적으로 의미 있는 차이라고 말할 수는 없습니다.
독립표본 t-검정은 이러한 차이가 우연히 발생했을 가능성을 함께 고려하여 판단합니다.

가설 설정

독립표본 t-검정의 기본 가설은 다음과 같습니다.

  • 귀무가설(H0): 두 집단의 평균은 같다. (μA = μB)
  • 대립가설(H1): 두 집단의 평균은 다르다. (μA ≠ μB)

분석 목적에 따라 대립가설을
μA > μB 또는 μA < μB 와 같이 단측 가설로 설정할 수도 있습니다.

분석 절차 개요

독립표본 t-검정은 다음과 같은 절차로 진행됩니다.

  1. 각 집단에 대한 정규성 검정
  2. 정규성 만족 시, 등분산 검정
  3. 조건에 따라 적절한 검정 방법 선택
    • 정규성 미만족 → 윌콕슨 순위합 검정
    • 정규성 만족 + 등분산 → 등분산 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-검정은 두 집단을 비교하는 가장 기본적인 통계 분석 도구입니다.
중요한 것은 단순한 평균 차이가 아니라,
그 차이가 우연인지 아닌지를 통계적으로 판단하는 데 있습니다.

정규성, 등분산 가정을 순서대로 확인하고
상황에 맞는 검정 방법을 선택하는 것이 올바른 분석의 핵심입니다.

마지막 업데이트: 2024-03-26

당신이 관심있을 만한 글