집단이 셋 이상이면 t-검정으로는 부족하다 — 분산분석(ANOVA)
그룹 간·그룹 내 분산의 비율(F 통계량)로 세 집단 이상의 평균 차이를 검정하는 분산분석의 종류, 전제조건, 사후 검정, R 구현 예시와 마케팅·신약·제조 활용 사례를 정리한다.
2026-08-14 · 최초 발행 2025-05-23
세 집단 이상의 평균을 비교해야 할 때 t-검정만으로는 한계가 있다. F.A. 피셔가 개발한 분산분석(ANOVA)은 그룹 간 분산(Between Group Variance)과 그룹 내 분산(Within Group Variance)의 비율, 즉 F 통계량으로 이 문제에 답한다.
그룹 간 분산과 그룹 내 분산의 비율로 판단한다
분산분석(ANOVA)은 두 개 이상의 그룹 간 평균 차이의 통계적 유의성을 검정하는 방법이다. 여러 집단의 평균 비교 시 t-검정의 한계를 극복하기 위해 개발되었으며, 그룹 간 분산과 그룹 내 분산의 비율(F 통계량)을 기반으로 의사결정한다. 귀무가설(H₀)은 "모든 그룹의 평균이 동일하다"이고, 대립가설(H₁)은 "적어도 하나의 그룹 평균이 다르다"다.
요인의 개수에 따라 달라지는 ANOVA의 종류
독립변수(요인)가 1개일 때는 일원배치 분산분석(One-way ANOVA)을 쓴다. 세 가지 다른 교육 방법에 따른 학생들의 성적 차이를 분석하는 경우가 그 예이며, F = MSB/MSW(MSB: 그룹 간 평균 제곱, MSW: 그룹 내 평균 제곱)로 계산한다.
독립변수가 2개일 때는 이원배치 분산분석(Two-way ANOVA)을 쓰며, 주효과(Main Effect)와 상호작용 효과(Interaction Effect)를 모두 분석할 수 있다. 성별(남/여)과 교육 방법(A/B/C)에 따른 학습 성취도 차이를 보는 경우가 그 예다.
3개 이상의 독립변수가 있을 때는 다원배치 분산분석(N-way ANOVA)을 쓴다. 변수 간 복잡한 상호작용을 분석할 수 있지만 해석이 복잡해지므로 실무에서는 신중하게 적용해야 한다.
동일한 대상을 여러 시점에서 측정한 데이터는 반복측정 분산분석(Repeated Measures ANOVA)으로 분석한다. 시간에 따른 변화나 학습 효과를 측정할 때 유용하며, 특정 약물 투여 전·중·후의 환자 상태 변화를 분석하는 경우가 그 예다.
F 통계량이 나오기까지의 계산
모든 관측값과 전체 평균 간 차이 제곱의 합을 총 제곱합(SST, Total Sum of Squares)이라 하며, SST = Σ(Yᵢⱼ - Ȳ)²로 계산한다. 각 그룹 평균과 전체 평균 간 차이 제곱의 합(그룹 크기로 가중)을 그룹 간 제곱합(SSB, Between-group Sum of Squares)이라 하며, SSB = Σnⱼ(Ȳⱼ - Ȳ)²로 계산한다. 각 관측값과 해당 그룹 평균 간 차이 제곱의 합을 그룹 내 제곱합(SSW, Within-group Sum of Squares)이라 하며, SSW = Σ(Yᵢⱼ - Ȳⱼ)²로 계산한다. 이때 SST = SSB + SSW가 항상 성립한다.
F 통계량은 F = (SSB/dfB) / (SSW/dfW)로 계산하며, dfB(그룹 간 자유도)는 그룹 수 - 1, dfW(그룹 내 자유도)는 전체 표본 수 - 그룹 수다. 계산된 F값이 임계값보다 크면 귀무가설을 기각한다(그룹 간 차이 존재).
ANOVA를 돌리기 전에 확인해야 할 것
각 그룹의 관측값은 서로 독립적이어야 한다는 독립성(Independence), 각 그룹 내 데이터가 정규분포를 따라야 한다는 정규성(Normality, Shapiro-Wilk 검정이나 Kolmogorov-Smirnov 검정 등으로 확인), 모든 그룹의 분산이 동일해야 한다는 등분산성(Homogeneity of variance, Levene 검정이나 Bartlett 검정 등으로 확인)이 세 가지 전제조건이다.
결과표를 읽는 법
ANOVA 테이블은 변동 요인(그룹 간·그룹 내·총 변동), 각 소스별 제곱합(SS), 각 소스별 자유도(df), SS를 df로 나눈 평균 제곱(MS), MSB/MSW인 F값, 계산된 F값에 대응하는 확률값인 p값으로 구성된다. 일반적으로 유의수준(α) 0.05를 쓰며, p < 0.05이면 귀무가설을 기각해 그룹 간 유의미한 차이가 있다고 보고, p ≥ 0.05이면 귀무가설을 채택해 그룹 간 유의미한 차이가 없다고 본다.
어느 그룹이 다른지 확인하는 사후 검정
ANOVA에서 귀무가설이 기각되면 어떤 그룹 간에 차이가 있는지 파악하기 위해 사후 검정을 실시한다. 다중 비교로 인한 제1종 오류 증가를 통제하기 위한 방법이 여러 가지 있다. 모든 쌍별 비교에 적합하고 그룹 크기가 동일할 때 효과적인 Tukey의 HSD(Honestly Significant Difference) 검정, 유의수준을 비교 횟수로 나누는(α/k) 가장 보수적인 방법인 Bonferroni 교정, 모든 가능한 대비에 대해 가장 보수적이며 복잡한 대비에 유용한 Scheffe 검정, 가장 관대하지만 제1종 오류 증가 위험이 있는 Fisher의 LSD(Least Significant Difference), 대조군과 여러 처리군을 비교할 때 유용한 Dunnett 검정이 대표적이다.
전제조건이 깨졌을 때의 대안
데이터가 정규성을 만족하지 않을 때는 순위(rank)에 기반한 비모수적 대안을 쓴다. 일원배치 ANOVA의 비모수적 대안인 Kruskal-Wallis 검정, 반복측정 ANOVA의 비모수적 대안인 Friedman 검정이 있다.
등분산성 가정이 충족되지 않을 때는 Welch의 ANOVA를 쓰거나, 이상치에 덜 민감한 Brown-Forsythe 검정을 쓴다.
마케팅 전략부터 신약 용량까지, ANOVA가 답하는 질문
세 가지 다른 마케팅 전략(A, B, C)에 따른 매출 증가율을 비교할 때는 일원배치 ANOVA로 전략 간 효과 차이를 검증하고, Tukey HSD로 어떤 전략이 가장 효과적인지 확인한다.
새로운 약물의 세 가지 용량(저/중/고)과 대조군의 효과를 비교할 때는 약물 효과가 용량에 따라 어떻게 달라지는지 분석하고, Dunnett 검정으로 각 용량군과 대조군을 비교한다.
세 가지 다른 생산 방식에 따른 제품 품질 차이를 분석할 때는 온도(고/중/저)와 압력(고/중/저)의 상호작용 효과를 이원배치 ANOVA로 검증해 최적의 생산 조건을 도출한다.
R로 직접 돌려보는 ANOVA
# 데이터 생성 예시
group1 <- c(25, 30, 28, 36, 29)
group2 <- c(45, 38, 52, 48, 42)
group3 <- c(39, 41, 44, 38, 40)
# 데이터프레임 생성
data <- data.frame(
values = c(group1, group2, group3),
groups = factor(rep(c("A", "B", "C"), each = 5))
)
# ANOVA 실행
anova_result <- aov(values ~ groups, data = data)
summary(anova_result)
# 사후 검정
TukeyHSD(anova_result)
# 분산 동질성 검정
library(car)
leveneTest(values ~ groups, data = data)
# 정규성 검정
shapiro.test(residuals(anova_result))
# 결과 시각화
library(ggplot2)
ggplot(data, aes(x = groups, y = values, fill = groups)) +
geom_boxplot() +
theme_minimal() +
labs(title = "각 그룹별 값 분포", x = "그룹", y = "값")
숫자 너머에서 생기는 함정들
표본이 지나치게 크면 통계적으로는 유의하지만 실질적으로 중요하지 않은 차이가 감지될 수 있으며, 효과 크기(effect size) 계산으로 이를 보완할 수 있다. 극단값은 분산을 늘려 검정력을 떨어뜨리므로 이상치 제거나 로버스트한 방법을 고려해야 한다. 여러 그룹 간 비교는 제1종 오류를 늘리므로 적절한 사후 검정 방법 선택이 중요하고, 무작위 할당과 적절한 표본 크기 확보 등 실험 설계 단계에서 교란 변수를 통제하는 것도 중요하다.
사전 확률 분포를 활용해 소규모 데이터셋에서도 안정적인 결과를 내는 베이지안 ANOVA, 고정 효과와 랜덤 효과를 동시에 고려해 계층적 구조의 데이터에 적합한 혼합 모형(Mixed Models), 선형성 가정을 완화해 복잡한 관계를 모델링하는 비선형 ANOVA, 전통적 ANOVA와 기계학습 방법론을 통합해 복잡한 패턴 식별과 예측에 활용하는 접근도 확장되고 있다.