가설 검정 실무: Z·t·카이제곱·F 검정과 p-값 해석
가설 검정에서 Z·t·카이제곱·F 검정의 적용 조건과 p-값, 유의수준, 검정력 해석을 실무 관점에서 정리합니다.
2026-08-14 · 최초 발행 2025-10-14
판단은 검정통계량의 극단성에서 시작한다
가설 검정은 귀무가설(H0)과 대립가설(H1)을 세운 뒤, 표본에서 계산한 검정통계량이 가정한 분포에서 얼마나 극단적인지로 판단하는 절차다. 평균의 차이인지, 범주 간 관계인지, 분산의 차이인지에 따라 적합한 검정도 달라진다.
p-값은 H0가 참일 때 현재 관측한 통계량 이상으로 극단적인 결과가 나타날 확률이다. H0 자체가 참일 확률을 뜻하지는 않는다. 유의수준 α는 실제로 참인 H0를 기각하는 1종 오류의 허용 한계값이다.
양측 검정은 차이의 존재를 확인할 때, 단측 검정은 특정 방향으로 크거나 작은지를 볼 때 사용한다. 실제 차이가 있을 때 H0를 올바르게 기각할 확률인 검정력(1−β)은 표본 수, 효과크기, 분산, α의 영향을 받는다.
평균·범주·분산에 맞춰 검정을 고른다
Z-검정은 모집단 분산 정보나 대표본이 있을 때 쓴다
Z-검정은 모집단 분산을 알고 있거나 표본 크기가 충분히 큰 경우(중심극한정리)에 평균에 대한 가설을 검정한다. 표준정규분포를 사용하므로 계산과 해석이 단순하다.
반대로 모집단 분산을 모르고 표본 수가 적거나 정규성을 확보하지 못한 상황에는 적합하지 않다.
t-검정은 모집단 분산을 모를 때 평균 차이를 다룬다
t-검정은 모집단 분산이 알려지지 않은 상황에서 평균 또는 평균 차이를 평가한다. 단일표본 t, 독립표본 t(등분산/웨치), 대응표본 t로 나뉜다.
소표본 여부, 정규성 근사, 등분산 가정의 성립 여부를 보고 적절한 변형을 선택해야 한다.
카이제곱 검정은 범주형 데이터의 관계를 본다
카이제곱(χ²) 검정은 범주형 데이터의 독립성이나 관측 분포의 적합도를 검정한다. 표본의 독립성과 기대도수가 충분히 큰지가 핵심 전제이며, 일반적으로 모든 셀이 ≥ 5인지 확인한다.
셀 빈도가 작다면 피셔의 정확 검정 같은 대안을 검토한다.
F-검정과 ANOVA는 분산비를 평가한다
F-검정은 분산의 차이를 비교하거나 분산분석(ANOVA)에서 집단 간 분산비를 검정할 때 사용한다. 정규성, 독립성, 등분산 가정에 민감하고 이상치에도 취약하다.
등분산 가정이 의심되면 Welch ANOVA 등을 대안으로 고려할 수 있다.
p-값은 기각 기준이지 효과의 크기가 아니다
p-값 ≤ α이면 H0를 기각하고, p-값 > α이면 H0를 기각할 수 없다고 판단한다. 이는 H0를 채택한다는 뜻은 아니다.
여러 가설을 동시에 검정할 때는 거짓발견률(FDR)을 제어하는 BH 절차 등을 쓰거나, Bonferroni 같은 보수적 보정을 적용해야 한다.
가정 확인부터 결과 보고까지 이어지는 흐름
검정별 가정과 운영 특성
| 검정 | 주요 가정 | 목적 | 표본 크기 민감도(성능) | 강건성/안정성 | 계산/운영 편의 |
|---|---|---|---|---|---|
| Z-검정 | 모집단 분산 기지 또는 대표본, 독립성 | 평균 검정 | 낮음(대표본에서 유리) | 가정 위반 시 취약 | 매우 높음 |
| t-검정 | 정규성 근사, 독립성, 등분산(옵션) | 평균 차이 검정 | 중간(소표본 가능) | Welch 사용 시 등분산 위반에 비교적 강건 | 높음 |
| χ² 검정 | 기대도수≥5, 독립성 | 범주 독립성/적합도 | 중간~높음(셀 빈도 필요) | 희박 셀에 취약 | 높음 |
| F-검정/ANOVA | 정규성, 독립성, 등분산 | 분산비/집단 평균 비교 | 중간 | 이상치·비정규성에 민감 | 높음 |
분석 대상에 따라 달라지는 적용 방식
제조 품질 관리에서는 공정 평균이 기준을 충족하는지 t-검정을 적용하고, 라인 간 분산 차이는 F-검정으로 확인할 수 있다. 마케팅 A/B 테스트에서는 전환율 차이에 χ² 검정을, 평균 구매액 차이에는 Welch t-검정을 적용한다.
고객 클레임의 범주형 패턴은 χ² 독립성 검정으로 카테고리 간 관계를 분석할 수 있다. 금융 리스크 모델에서는 분산 변화 감지에 F-검정을 쓰며, 잔차 정규성이 충족되지 않으면 비모수 대안을 고려한다.
재현 가능한 판단을 위한 운영 기준
1종 오류는 α 수준으로 관리하고, 사전 검정력 설계로 2종 오류 β를 줄일 수 있다. 가정 점검과 효과크기, 신뢰구간을 함께 보고하면 해석의 일관성과 재현 가능성이 높아진다. 데이터 특성에 따라 절차를 표준화하면 분석 시간을 줄이고 의사결정 속도를 높일 수 있다.
정규성은 Shapiro-Wilk, 등분산은 Levene/Brown–Forsythe, 범주형 분석에서는 기대도수를 우선 확인한다. 설계 단계에서는 효과크기를 추정하고 목표 파워(예: 0.8)를 만족하는 표본 수를 산정한다.
다중비교에는 Bonferroni(보수적) 또는 BH-FDR(균형적)을 적용한다. 보고할 때는 p-값만 제시하지 않고 효과크기(Cohen’s d, Cramér’s V, η²)와 95% 신뢰구간을 함께 제시한다. α를 낮추면 1종 오류는 감소하고 2종 오류는 증가하며, 표본 확대는 비용을 늘리는 대신 해석 신뢰도를 개선한다.
Python으로 검정 결과 확인하기
# pip install scipy statsmodels
import numpy as np
from scipy import stats
from statsmodels.stats.weightstats import ztest
# 1) Z-검정: 대표본 평균 비교(모집단 분산 기지 또는 근사)
x = np.random.normal(100, 15, size=500)
z_stat, p_z = ztest(x, value=102) # H0: mu=102
print("Z-test:", z_stat, p_z)
# 2) t-검정: 독립표본, 등분산 가정 없음(Welch)
a = np.random.normal(10, 3, size=30)
b = np.random.normal(11.5, 3.5, size=35)
t_stat, p_t = stats.ttest_ind(a, b, equal_var=False)
print("Welch t-test:", t_stat, p_t)
# 3) χ² 독립성 검정: 2x3 분할표
table = np.array([[30, 50, 20],
[25, 45, 30]])
chi2, p_chi, dof, expected = stats.chi2_contingency(table)
print("Chi-square:", chi2, p_chi, dof)
# expected가 5 미만 셀이 많으면 피셔의 정확 검정 고려(2x2에 한해 stats.fisher_exact)
# 4) F-검정(ANOVA): 3집단 평균 비교
g1 = np.random.normal(0, 1, size=25)
g2 = np.random.normal(0.5, 1, size=25)
g3 = np.random.normal(1.0, 1, size=25)
f_stat, p_anova = stats.f_oneway(g1, g2, g3)
print("One-way ANOVA:", f_stat, p_anova)
이상치나 비정규 분포가 의심되면 Mann–Whitney U, Kruskal–Wallis, Wilcoxon signed-rank 같은 비모수 대안을 검토한다. 기대도수 미만 셀이 있으면 χ² 결과의 해석을 유보하고 설계를 다시 확인해야 한다.