728x90
이건 진짜 효과일까, 아니면 그냥 우연일까?
어떤 마케팅 팀이 새로 만든 광고 배너를 테스트하고 있습니다.
A그룹은 기존 광고를, B그룹은 새 광고를 본 뒤, 클릭률을 비교했더니
B그룹의 클릭률이 더 높게 나왔습니다.
그럼 이 질문이 생각이 납니다:
"이건 진짜 광고 효과일까?" 아니면 단순히 운 좋게 높게 나온 걸까?
이럴 때 우리는 느낌이 아니라 '통계적 증거' 가 필요합니다.
바로 이럴 때 쓰는 도구가 가설검정(hypothesis testing) 입니다.
가설검정이란?
가설검정은 "눈에 보이는 차이"가 실제로 통계적으로 유의미한 차이인지를 판단하는 방법입니다.
통계에서는 두 가지 가설을 세웁니다.
| 가설 종류 | 의미 |
| 귀무가설 (H₀) | 두 그룹 사이에 차이가 없다 |
| 대립가설 (H₁) | 두 그룹 사이에 차이가 있다 |
예를 들어
- H₀: 새 광고는 기존 광고보다 클릭률이 더 높지 않다.
- H₁: 새 광고는 기존 광고보다 클릭률이 더 높다.
그리고 이제, 우리가 관측한 데이터가 이 귀무가설 하에 얼마나 "이상한 결과" 인지 측정합니다.
그 측정값이 바로 p-value입니다.
p-value란?
귀무가설이 맞다고 가정했을 때,
우리가 관찰한 데이터(또는 더 극단적인 데이터)가 나올 확률입니다.
| p-value | 해석 |
| 0.50 | 이런 결과는 자주 나옴 → 우연일 수 있음 |
| 0.01 | 이런 결과는 거의 안 나옴 → 우연이라 보기 어려움 |
기준점: 유의수준 (α = 0.05)
- p < 0.05: 통계적으로 유의 → 차이 있다! (귀무가설 기각)
- p ≥ 0.05: 통계적으로 유의하지 않음 → 차이 없다 or 증거 부족
그럼 어떤 검정을 써야할까요?
오늘은 두 집단의 평균을 비교하는 가장 기본적인 방법인 독립표본 t-검정 (independent t-test)을 사용합니다.
예를 들어
A반과 B반의 수학 점스를 비교해보도록 하겠습니다.
A반은 기존 방식으로 수업했고, B반은 새 학습법을 적용했습니다.
import numpy as np
from scipy.stats import ttest_ind
# A반, B반 점수 생성 (정규분포 기반)
np.random.seed(42)
group_a = np.random.normal(loc=75, scale=10, size=30)
group_b = np.random.normal(loc=78, scale=10, size=30)
# t-test 수행
t_stat, p_value = ttest_ind(group_a, group_b)
print(f"A반 평균: {np.mean(group_a):.2f}")
print(f"B반 평균: {np.mean(group_b):.2f}")
print(f"t-통계량: {t_stat:.2f}")
print(f"p-value: {p_value:.4f}")
A반 평균: 74.38
B반 평균: 78.89
t-통계량: -1.86
p-value: 0.0688
- p = 0.0688 → 유의수준 0.05보다 크다 → 귀무가설 기각할 수 없다
- 즉, B반 점수가 높아 보이지만, 단순한 유연일 수도 있음
이걸 시각화 해서 보면 다음과 같습니다.

중심 극한 정리(CLT)와 가설검정의 연결
- 각각의 점수는 정규분포가 아닐 수 있어도,
- 표본 평균은 정규분포에 근사됨 → CLT 덕분에 t-test 가능
마무리 요약
| 핵심 개념 | 설명 |
| 귀무가설 (H₀) | 두 그룹 간 차이 없음 |
| 대립가설 (H₁) | 두 그룹 간 차이 있음 |
| p-value | 이런 결과가 나올 확률 |
| 유의수준 (α) | 통계적으로 유의하다고 판단하는 기준 (보통 0.05) |
| t-test | 평균 비교용 검정 방법 |
| CLT 연결성 | 표본 평균의 정규분포 근사 덕분에 가능함 |
참고 자료
- Geron, A. Hands-On Machine Learning
- Khan Academy: p-value와 t-test 강의
- scipy 공식 문서: scipy.stats.ttest_ind
728x90
반응형
'Data Analysis' 카테고리의 다른 글
| 대응표본 t-test (2) | 2025.07.22 |
|---|---|
| 중심 극한 정리 (Central Limit Theorem, CLT) (0) | 2025.05.27 |
| 파생변수 생성 - Feature Engineering (1) | 2025.05.19 |
| 범주형 변수 인코딩 - Label, One-Hot, Ordinal (0) | 2025.05.19 |
| 정규화(Normalization) vs 표준화(Standardization) (0) | 2025.05.14 |
