728x90
한 다이어트 식품 업체가 제품을 출시했습니다.
30명의 참가자에게 2주간 제품을 복용하게 했고,
그들의 체중을 복용 전과 복용 후에 측정했습니다.
측정 결과는 이렇습니다.
"평균 체중이 70.2kg 에서 68.7kg로 줄었어요!
"근데 이게 진짜 효과일까요? 아니면 단순한 우연한 차이일까요?"
바로 이럴 때 사용하는 검정이 대응표본 t-test (Paried t-test) 입니다.
대응표본 t-test란?
같은 대상이 두 번 측정된 경우, 그 전후 평균 차이가 통계적으로 유의한지를 검정하는 방법입니다.
| 상황 예시 | 설명 |
| 다이어트 전/후 체중 | 같은 사람을 두 번 측정 |
| 교육 전/후 시험 점수 | 같은 학생이 두 번 시험 |
| 약 복용 전/후 혈압 측정 | 같은 환자의 두 시점 비교 |
일반 t-test와의 차이
| 항목 | 독립표본 t-test | 대응표본 t-test |
| 비교 대상 | 서로 다른 두 그룹 | 동일한 대상의 두 시점 |
| 독립성 | 독립된 표본 | 쌍으로 연결된 표본 |
| 예시 | A vs B 학급 비교 | 한 사람의 전후 비교 |
그럼 예제를 통해서 더 자세하게 보도록 하겠습니다.
예제 : 체중 변화 전후 비교 (paired t-test)
import numpy as np
from scipy.stats import ttest_rel
# 체중 측정 (before/after)
np.random.seed(0)
before = np.random.normal(loc=70, scale=5, size=30)
after = before - np.random.normal(loc=1.5, scale=1, size=30) # 평균 1.5kg 감소
# 대응표본 t-test
t_stat, p_value = ttest_rel(before, after)
print(f"Before 평균: {np.mean(before):.2f}kg")
print(f"After 평균: {np.mean(after):.2f}kg")
print(f"t-통계량: {t_stat:.2f}")
print(f"p-value: {p_value:.4f}")
Before 평균: 70.60kg
After 평균: 68.96kg
t-통계량: 7.18
p-value: 0.0000
- p < 0.05 → 귀무가설 기각
- → 두 시점의 평균 차이는 통계적으로 유의함 → 다이어트 효과가 있었다
이제 시각화해서 보게 되면 다음과 같습니다.
import matplotlib.pyplot as plt
plt.plot(before, label='Before', marker='o')
plt.plot(after, label='After', marker='s')
plt.title("a change in weight (Before vs After)")
plt.legend()
plt.grid(True)
plt.show()

그럼 언제 대응표본 t-test를 써야할까요?
| 상황 | 적합 여부 |
| A반 학생과 B반 학생의 수학 점수 비교 | ❌ → 독립표본 t-test |
| 한 사람의 약 복용 전/후 혈압 비교 | ✅ → 대응표본 t-test |
| 고객의 첫 방문 클릭률 vs 재방문 클릭률 비교 | ✅ → 대응표본 t-test |
마무리 요약
| 개념 | 설명 |
| 대응표본 t-test | 같은 대상의 전후 비교 (쌍을 이룬 데이터) |
| t-통계량 | 전후 평균 차이의 통계적 크기 |
| p-value | 이런 차이가 우연일 확률 (작을수록 의미 있음) |
| 사용 조건 | 두 측정값이 반드시 같은 대상에서 나와야 함 |
참고 자료
- Khan Academy: Paired t-test
- Geron, A. Hands-On Machine Learning
- SciPy 공식 문서: scipy.stats.ttest_rel
728x90
반응형
'Data Analysis' 카테고리의 다른 글
| t-test와 p-value (0) | 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 |
