데이터 사이언스 - 5. 기초 통계 및 확률 (5.3 통계적 가설 검정)
5.3 통계적 가설 검정
통계적 가설 검정(Statistical Hypothesis Testing)은 데이터를 기반으로 특정 주장(가설)이 통계적으로 유의미한지 판단하는 과정이다.
이 과정에서는 귀무가설(Null Hypothesis, H₀)과 대립가설(Alternative Hypothesis, H₁)을 설정한 후, 통계적 검정을 통해 가설을 검증한다.
이 장에서는 가설 검정의 개념과 주요 검정 방법(t-test, ANOVA, 카이제곱 검정)을 다룬다.
5.3.1 귀무가설(H₀)과 대립가설(H₁)
✅ 귀무가설 (Null Hypothesis, H₀)
- 검정을 통해 기각되기 전까지 참이라고 가정하는 가설
- 즉, '두 집단 간 차이가 없다'거나 '특정 효과가 없다'는 가정을 의미
✅ 대립가설 (Alternative Hypothesis, H₁)
- 귀무가설이 기각될 경우 채택되는 가설
- 즉, '두 집단 간 차이가 있다'거나 '특정 효과가 존재한다'는 주장
📌 예제: A/B 테스트에서 귀무가설과 대립가설
- H₀: 광고 A와 광고 B의 클릭률 차이는 없다.
- H₁: 광고 A와 광고 B의 클릭률 차이가 있다.
5.3.2 가설 검정 과정
1️⃣ 귀무가설(H₀)과 대립가설(H₁) 설정
2️⃣ 유의수준(α, Significance Level) 결정 (보통 0.05, 즉 5%)
3️⃣ 통계적 검정(t-test, ANOVA 등) 수행
4️⃣ p-value 계산 및 결과 해석
- p-value < 0.05 → 귀무가설 기각 (통계적으로 유의미한 차이 존재)
- p-value ≥ 0.05 → 귀무가설 유지 (통계적으로 유의미한 차이 없음)
5.3.3 주요 통계 검정 방법
① t-test (독립표본 t-검정 & 대응표본 t-검정)
t-test(스튜던트 t-검정)은 두 집단의 평균 차이가 통계적으로 유의미한지를 검정하는 방법이다.
✅ t-test 종류
- 독립표본 t-test → 서로 다른 두 집단의 평균 비교 (예: 남성과 여성의 평균 키 비교)
- 대응표본 t-test → 같은 집단에서 두 조건을 비교 (예: 약 복용 전/후 혈압 비교)
📌 독립표본 t-test 예제 (두 그룹의 평균 비교)
import numpy as np
import scipy.stats as stats
# 샘플 데이터 생성 (A 그룹과 B 그룹의 점수)
group_A = [80, 85, 88, 92, 95]
group_B = [78, 83, 85, 89, 90]
# 독립표본 t-test 수행
t_stat, p_value = stats.ttest_ind(group_A, group_B)
print("t-statistic:", t_stat)
print("p-value:", p_value)
✅ 해석 방법
- p-value < 0.05 → 두 그룹 간 평균 차이가 유의미함 (귀무가설 기각)
- p-value ≥ 0.05 → 두 그룹 간 평균 차이가 없음 (귀무가설 유지)
② ANOVA (분산 분석, Analysis of Variance)
ANOVA(분산 분석, Analysis of Variance)는 세 개 이상의 그룹 간 평균 차이를 비교하는 검정 방법이다.
- t-test는 두 그룹만 비교 가능하지만, ANOVA는 여러 그룹을 한 번에 비교 가능
- 예) A, B, C 세 그룹의 시험 점수 평균 차이 비교
📌 ANOVA 예제 (세 개 이상의 그룹 평균 비교)
# 세 그룹의 점수 데이터
group_A = [80, 85, 88, 92, 95]
group_B = [78, 83, 85, 89, 90]
group_C = [75, 80, 82, 86, 88]
# ANOVA 수행
f_stat, p_value = stats.f_oneway(group_A, group_B, group_C)
print("F-statistic:", f_stat)
print("p-value:", p_value)
✅ 해석 방법
- p-value < 0.05 → 세 그룹 중 최소한 하나의 그룹이 유의미하게 다름
- p-value ≥ 0.05 → 세 그룹 간 평균 차이가 유의미하지 않음 (귀무가설 유지)
⚠ ANOVA의 한계
- 어떤 그룹이 차이가 있는지 알려주지 않음 → 사후 검정(Post-hoc test, 예: Tukey test) 필요
③ 카이제곱 검정 (Chi-Square Test)
카이제곱 검정(Chi-Square Test)은 범주형 데이터(명목형 데이터)에서 그룹 간 차이를 분석하는 검정 방법이다.
- 예) 광고 A와 광고 B의 클릭 수 비교
✅ 카이제곱 검정 종류
- 적합도 검정 (Goodness-of-fit test) → 한 개의 범주형 변수 분포가 기대값과 일치하는지 확인
- 독립성 검정 (Test for Independence) → 두 개의 범주형 변수가 관련이 있는지 검정
📌 카이제곱 검정 예제 (광고 클릭 여부 분석)
import scipy.stats as stats
import numpy as np
# 광고 A/B에 대한 클릭 여부 (2x2 교차표)
observed = np.array([[50, 30], [40, 60]]) # [광고A 클릭, 광고A 미클릭], [광고B 클릭, 광고B 미클릭]
# 카이제곱 검정 수행
chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed)
print("Chi-Square Statistic:", chi2_stat)
print("p-value:", p_value)
print("Expected Frequencies:", expected)
✅ 해석 방법
- p-value < 0.05 → 두 변수 간 상관관계 존재 (광고 효과 차이가 있음)
- p-value ≥ 0.05 → 두 변수 간 상관관계 없음 (광고 효과 차이 없음)
5.3.4 주요 가설 검정 방법 비교
검정 방법 | 사용 목적 | 예시 |
t-test | 두 그룹 평균 비교 | 남녀 평균 키 비교 |
ANOVA | 세 개 이상 그룹 평균 비교 | A/B/C 세 광고 클릭률 비교 |
카이제곱 검정 | 범주형 데이터 간 독립성 분석 | 광고 클릭률 비교 |
✅ 어떤 검정을 사용해야 할까?
- 연속형 데이터(숫자) 비교 → t-test (2개 그룹) / ANOVA (3개 이상 그룹)
- 범주형 데이터 비교 → 카이제곱 검정
결론
통계적 가설 검정을 통해 데이터의 차이가 우연인지, 실제로 의미 있는 차이인지 판단할 수 있다.
- 귀무가설(H₀)과 대립가설(H₁)을 설정
- t-test → 두 그룹 평균 차이 검정
- ANOVA → 세 개 이상 그룹 평균 차이 검정
- 카이제곱 검정 → 범주형 데이터 비교
가설 검정을 활용하면 데이터 분석 및 A/B 테스트 결과를 객관적으로 평가할 수 있으며, 머신러닝 모델 평가에도 유용하다.