04 — LECTURE ·L-002 ·2026.03.11

2강 - 분산분석 (ANOVA)

세 집단 이상의 평균 차이를 F값으로 검정하는 원리

목차
  1. ANOVA란?
  2. 왜 t검정을 반복하면 안 되는가?
  3. 핵심 아이디어
  4. 전제 조건
  5. 가설 설정
  6. 원리와 공식
  7. 기호
  8. 변동의 분해
  9. 자유도 (Degrees of Freedom)
  10. 평균 제곱 (MS, Mean Square)
  11. F값 (F-ratio)
  12. F분포와 p-value
  13. 계산 예시: 포지션별 스프린트 속도
  14. 사후분석 (Post-hoc Test)
  15. 주요 방법
  16. Tukey HSD
  17. Bonferroni 보정
  18. Scheffé
  19. 등분산 위반 시
  20. 사후분석 결과 예시
  21. 효과크기 (Effect Size)
  22. 에타제곱 (Eta-squared, η2\eta^2η2)
  23. 편에타제곱 (Partial η2\eta^2η2, ηp2\eta_p^2ηp2​)
  24. 오메가제곱 (Omega-squared, ω2\omega^2ω2)
  25. Cohen’s f
  26. 실습 자료

ANOVA란?

세 개 이상 집단의 평균 차이가 통계적으로 유의한지 검증하는 방법이다. “여러 집단의 평균이 모두 같은가, 아니면 적어도 하나는 다른가?”에 대한 답을 준다.

왜 t검정을 반복하면 안 되는가?

세 집단(A, B, C)을 비교하려면 t검정이 세 번 필요하다. A vs B, A vs C, B vs C.

t검정 1회당 1종 오류율은 α=0.05\alpha = 0.05이다. 그런데 이를 반복하면 전체 1종 오류율이 누적된다.

1(10.05)3=10.857=0.143 (14.3%)1 - (1 - 0.05)^3 = 1 - 0.857 = 0.143 \ (14.3\%)

1(10.05)10=0.401 (40.1%)1 - (1 - 0.05)^{10} = 0.401 \ (40.1\%)

1종 오류란 실제로는 차이가 없는데 “차이가 있다”고 잘못 판단하는 오류다. 비교 횟수가 늘수록 거짓 양성(false positive) 확률이 급격히 커진다. ANOVA는 한 번의 검정으로 전체 집단 간 차이를 판단하여 1종 오류율을 α=0.05\alpha = 0.05로 유지한다.

핵심 아이디어

ANOVA는 “집단 간 변동(차이)이 집단 내 변동(개인차)보다 충분히 큰가?”를 묻는다.

  • 집단 간 변동 (Between-group variation): 각 집단의 평균이 전체 평균에서 얼마나 떨어져 있는가. 집단 “차이”의 크기.
  • 집단 내 변동 (Within-group variation): 각 집단 안에서 개별 데이터가 해당 집단 평균에서 얼마나 흩어져 있는가. “잡음(noise)“의 크기.

집단 간 변동이 크고 집단 내 변동이 작으면 집단 평균 차이가 잡음에 비해 확실해진다. 반대로 집단 간 변동이 작고 집단 내 변동이 크면 집단 차이가 잡음에 묻힌다. 이는 t검정의 “Signal / Noise” 구조를 여러 집단으로 확장한 것이다.

전제 조건

ANOVA 결과가 신뢰할 수 있으려면 세 가지 가정이 충족되어야 한다.

가정의미검정 방법위반 시 대안
독립성관측값이 서로 독립적연구 설계로 확인반복측정 ANOVA, 혼합모형
정규성각 집단의 데이터가 정규분포Shapiro-Wilk, Q-Q PlotKruskal-Wallis (비모수)
등분산성모든 집단의 분산이 동일Levene 검정Welch ANOVA, Games-Howell

독립성은 한 관측값이 다른 관측값에 영향을 주지 않아야 한다는 것이다. 같은 선수를 여러 조건에서 측정하면 독립성이 위반되므로 반복측정 ANOVA를 쓴다. 이는 연구 설계 단계에서 확보하는 것이지 통계적으로 검정하는 것이 아니다.

정규성은 각 집단의 모집단이 정규분포를 따르는지에 관한 가정이다. 표본이 충분히 크면(각 집단 n30n \geq 30) 중심극한정리에 의해 정규성 위반에 강건(robust)하다. 표본이 작으면 Shapiro-Wilk 검정이 필수다. p0.05p \geq 0.05이면 정규성 가정을 충족하고, p<0.05p < 0.05이면 위반이므로 Kruskal-Wallis 비모수 검정을 고려한다.

**등분산성 (Homogeneity of Variance)**은 모든 집단의 분산 σ2\sigma^2이 같은지를 본다. Levene 검정으로 확인하며, p0.05p \geq 0.05이면 일반 ANOVA를 쓰고 p<0.05p < 0.05이면 Welch ANOVA를 쓴다. 등분산이 위반되면 사후분석도 Tukey에서 Games-Howell로 바뀐다.

가설 설정

귀무가설은 “모든 집단의 평균이 같다”이다(kk는 집단 수).

H0:μ1=μ2=μ3==μkH_0: \mu_1 = \mu_2 = \mu_3 = \cdots = \mu_k

대립가설은 “적어도 한 쌍의 집단 평균이 다르다”이다.

H1:적어도 하나의 μiμj (ij)H_1: \text{적어도 하나의 } \mu_i \neq \mu_j \ (i \neq j)

주의할 점은 “모든 집단이 다르다”가 아니라는 것이다. 어디가 다른지는 사후분석으로 확인한다. p<0.05p < 0.05이면 H0H_0을 기각하여 “적어도 한 집단의 평균이 다르다”고 하고, p0.05p \geq 0.05이면 “집단 간 평균 차이를 입증하지 못했다”고 한다.

원리와 공식

기호

기호의미
kk집단 수
nin_iii번째 집단의 표본 크기
NN전체 표본 수 (N=n1+n2++nkN = n_1 + n_2 + \cdots + n_k)
xˉi\bar{x}_iii번째 집단의 평균
xˉ\bar{x}전체 평균 (Grand Mean)
xijx_{ij}ii번째 집단의 jj번째 관측값

변동의 분해

ANOVA의 핵심은 전체 변동(Total Variation)을 두 가지 원인으로 분해하는 것이다.

SST=SSB+SSWSST = SSB + SSW

데이터가 흩어지는 이유는 두 가지다. 집단이 달라서 평균이 다르기 때문(집단 간 변동)과, 같은 집단 안에서도 개인마다 다르기 때문(집단 내 변동)이다. 집단 간 변동이 집단 내 변동에 비해 충분히 크면 집단 차이가 잡음에 비해 확실해진다.

전체 변동 (SST, Sum of Squares Total) — 모든 개별 데이터가 전체 평균에서 얼마나 떨어져 있는가의 총합이다.

SST=i=1kj=1ni(xijxˉ)2SST = \sum_{i=1}^{k} \sum_{j=1}^{n_i} (x_{ij} - \bar{x})^2

편차를 그냥 합하면 양수와 음수가 상쇄되어 0이 되므로, 제곱하여 방향과 무관하게 “얼마나 멀리 떨어져 있는가”를 측정한다.

집단 간 변동 (SSB, Sum of Squares Between) — 각 집단의 평균이 전체 평균에서 얼마나 떨어져 있는가이다.

SSB=i=1kni×(xˉixˉ)2SSB = \sum_{i=1}^{k} n_i \times (\bar{x}_i - \bar{x})^2

표본이 큰 집단의 편차가 더 큰 영향을 갖도록 nin_i로 가중한다. SSB가 크면 집단 평균들이 서로 많이 달라 집단 효과가 크다는 뜻이다.

집단 내 변동 (SSW, Sum of Squares Within) — 각 집단 안에서 개별 데이터가 해당 집단 평균에서 얼마나 떨어져 있는가의 총합이다.

SSW=i=1kj=1ni(xijxˉi)2SSW = \sum_{i=1}^{k} \sum_{j=1}^{n_i} (x_{ij} - \bar{x}_i)^2

집단 차이와 무관한 순수한 개인차(잡음)이다. SSW가 작으면 집단 내 데이터가 촘촘하여 작은 집단 차이도 탐지할 수 있다.

세 변동 사이에는 SST=SSB+SSWSST = SSB + SSW가 항상 성립한다. 전체 변동이라는 “빗변”을 두 직각변으로 분해하는 피타고라스 정리의 통계 버전이라 볼 수 있다.

자유도 (Degrees of Freedom)

변동자유도의미
SSB (집단 간)dfB=k1df_B = k - 1자유롭게 변할 수 있는 집단 평균 수
SSW (집단 내)dfW=Nkdf_W = N - kkk개 집단 평균 고정 후 남은 자유도
SST (전체)dfT=N1df_T = N - 1전체 평균 고정 후 남은 자유도

dfT=dfB+dfWdf_T = df_B + df_W가 성립한다: (N1)=(k1)+(Nk)(N - 1) = (k - 1) + (N - k). 제곱합(SS)은 데이터 수가 많을수록 커지므로, 공정하게 비교하려면 자유도로 나눠 “데이터 1개당 평균 변동”으로 만든다. 이것이 평균 제곱(MS)이다.

평균 제곱 (MS, Mean Square)

MSbetween=SSBk1,MSwithin=SSWNkMS_{\text{between}} = \frac{SSB}{k - 1}, \qquad MS_{\text{within}} = \frac{SSW}{N - k}

MSbetweenMS_{\text{between}}은 집단 평균 차이가 클수록 커진다. MSwithinMS_{\text{within}}은 잡음의 크기를 나타내며 모분산 σ2\sigma^2의 추정치 역할을 한다. SS는 자유도가 다르면 직접 비교할 수 없지만, MS는 “단위당 변동”이므로 공정한 비교가 가능하다.

F값 (F-ratio)

F=MSbetweenMSwithin=집단 간 평균 변동집단 내 평균 변동F = \frac{MS_{\text{between}}}{MS_{\text{within}}} = \frac{\text{집단 간 평균 변동}}{\text{집단 내 평균 변동}}

즉 집단 간 차이(Signal)가 집단 내 잡음(Noise)의 몇 배인가를 나타낸다.

F값의미
F1F \approx 1집단 차이가 잡음 수준 → 유의하지 않음
F1F \gg 1집단 차이가 잡음보다 확실히 큼 → 유의 가능성 높음
F<1F < 1집단 차이보다 개인차가 큼 → 유의하지 않음

귀무가설이 참이면 MSbetweenMSwithinMS_{\text{between}} \approx MS_{\text{within}}이므로 F1F \approx 1이고, 대립가설이 참이면 F>1F > 1이 된다. 따라서 F가 충분히 클 때만 귀무가설을 기각하며, F검정은 항상 단측(오른쪽 꼬리) 검정이다. 집단이 2개일 때는 F=t2F = t^2로, ANOVA의 F값은 t검정을 일반화한 것이다.

F분포와 p-value

F값이 따르는 확률분포로, 두 자유도 dfBdf_B(분자)와 dfWdf_W(분모)에 의해 결정된다. 제곱합의 비율이므로 항상 0 이상이고 오른쪽으로 치우친 형태다. p-value는 귀무가설이 참일 때 관측된 F값 이상으로 극단적인 값이 나올 확률이며, p<0.05p < 0.05이면 “이렇게 큰 F값이 우연히 나올 확률이 5% 미만”이므로 H0H_0을 기각한다.

계산 예시: 포지션별 스프린트 속도

“축구 포지션(수비, 미드필더, 공격)에 따라 최대 스프린트 속도에 차이가 있는가?”

포지션nn평균 (km/h)표준편차
수비1031.21.5
미드필더1232.81.8
공격1033.51.4
전체3232.51.7

전체 평균 xˉ=32.5\bar{x} = 32.5이다.

SSB=10(31.232.5)2+12(32.832.5)2+10(33.532.5)2=27.98SSB = 10(31.2 - 32.5)^2 + 12(32.8 - 32.5)^2 + 10(33.5 - 32.5)^2 = 27.98

SSW=(101)×1.52+(121)×1.82+(101)×1.42=73.53SSW = (10-1)\times 1.5^2 + (12-1)\times 1.8^2 + (10-1)\times 1.4^2 = 73.53

자유도는 dfB=31=2df_B = 3 - 1 = 2, dfW=323=29df_W = 32 - 3 = 29이다.

MSbetween=27.982=13.99,MSwithin=73.5329=2.54MS_{\text{between}} = \frac{27.98}{2} = 13.99, \qquad MS_{\text{within}} = \frac{73.53}{29} = 2.54

F=13.992.54=5.51F = \frac{13.99}{2.54} = 5.51

변동원SSdfMSFp
집단 간27.98213.995.51.009
집단 내73.53292.54
전체101.5131

F(2,29)=5.51F(2, 29) = 5.51, p=.009<.05p = .009 < .05이므로 귀무가설을 기각한다. 즉 포지션에 따라 최대 스프린트 속도에 유의한 차이가 있다.

사후분석 (Post-hoc Test)

ANOVA는 “적어도 하나의 집단이 다르다”만 알려줄 뿐, 어떤 집단 간에 차이가 있는지는 알려주지 않는다. 예를 들어 앞의 결과가 유의하더라도 수비만 미드필더와 다른 것인지, 세 집단이 모두 다른 것인지는 알 수 없다. 이를 쌍별(pairwise) 비교로 밝히는 것이 사후분석이다.

주요 방법

방법특징사용 조건
Tukey HSD가장 널리 사용. 모든 쌍 비교. 보수적집단 크기가 비슷
Bonferroni유의수준을 비교 횟수로 나눔. 매우 보수적비교 횟수가 적을 때
Scheffé가장 보수적. 사전 계획 없는 비교에 적합모든 상황
Games-Howell등분산 가정 불필요등분산 위반 시
Dunnett하나의 통제 집단과 나머지 비교통제군 vs 실험군

Tukey HSD

가장 널리 쓰이는 방법으로, 모든 집단 쌍을 한꺼번에 비교하면서 전체 1종 오류율을 통제한다. 임계값 HSD(Honestly Significant Difference)는 다음과 같다.

HSD=q×MSwithinnHSD = q \times \sqrt{\frac{MS_{\text{within}}}{n}}

여기서 qq는 Studentized Range 분포의 임계값(자유도와 집단 수에 따라 결정), MSwithinMS_{\text{within}}은 ANOVA에서 구한 집단 내 평균제곱, nn은 각 집단의 표본 크기다(집단 크기가 같을 때). 두 집단 평균의 차이 xˉixˉj|\bar{x}_i - \bar{x}_j|가 HSD보다 크면 그 쌍은 유의하게 다르다고 판단한다. 집단 크기가 비슷할 때 적합하다.

Bonferroni 보정

전체 유의수준 α\alpha를 비교 횟수로 나누어 각 비교에 더 엄격한 기준을 적용한다.

보정된 유의수준=α비교 횟수\text{보정된 유의수준} = \frac{\alpha}{\text{비교 횟수}}

세 집단이면 세 쌍을 비교하므로 0.053=0.0167\frac{0.05}{3} = 0.0167이 되고, 각 쌍별 비교에서 p<0.0167p < 0.0167이어야 유의하다고 본다. 다중비교 시 1종 오류가 누적되므로 유의수준을 낮춰 전체 1종 오류율을 0.05로 유지하는 원리다. 매우 보수적이어서 비교 횟수가 적을 때 적합하다.

Scheffé

가장 보수적인 방법으로, 사전에 계획하지 않은 임의의 대비(contrast)까지 비교할 수 있다. 검정력은 낮지만 어떤 상황에서도 1종 오류를 안전하게 통제한다.

등분산 위반 시

등분산 가정이 깨지면 Tukey 대신 Games-Howell을 쓴다. 각 집단의 분산이 다르다는 것을 반영하여 비교하므로, Welch ANOVA와 함께 사용하는 것이 안전하다.

사후분석 결과 예시

비교평균 차이p (Tukey)유의 여부
수비 vs 미드필더-1.6.052유의하지 않음
수비 vs 공격-2.3.006유의
미드필더 vs 공격-0.7.542유의하지 않음

수비와 공격 포지션 간에만 유의한 스프린트 속도 차이가 있다.

효과크기 (Effect Size)

F값과 p값은 표본 크기에 영향을 받아, 표본이 크면 작은 차이도 유의하게 나온다. 효과크기는 표본 크기와 독립적으로 “차이의 실질적 크기”를 보여준다.

에타제곱 (Eta-squared, η2\eta^2)

전체 변동 중 집단 차이로 설명되는 비율이다.

η2=SSBSST\eta^2 = \frac{SSB}{SST}

앞의 예시에서 η2=27.98101.51=0.276\eta^2 = \frac{27.98}{101.51} = 0.276이므로 전체 변동의 27.6%가 포지션 차이로 설명된다.

η2\eta^2해석
.01작은 효과
.06중간 효과
.14 이상큰 효과

η2\eta^2은 표본 크기가 커질수록 과대추정되는 경향이 있다.

편에타제곱 (Partial η2\eta^2, ηp2\eta_p^2)

ηp2=SSBSSB+SSW\eta_p^2 = \frac{SSB}{SSB + SSW}

일원 ANOVA에서는 η2=ηp2\eta^2 = \eta_p^2로 같지만, 이원 ANOVA 이상에서는 다른 요인의 효과를 제거한 순수 효과로서 차이가 생긴다. SPSS가 기본으로 출력하는 효과크기다.

오메가제곱 (Omega-squared, ω2\omega^2)

η2\eta^2은 항상 과대추정(양의 편향)되므로, 이를 보정하여 모집단 효과크기를 더 정확히 추정하는 값이다.

ω2=SSB(k1)×MSwithinSST+MSwithin\omega^2 = \frac{SSB - (k-1)\times MS_{\text{within}}}{SST + MS_{\text{within}}}

예시에서 ω2=27.982×2.54101.51+2.54=22.90104.05=0.220\omega^2 = \frac{27.98 - 2 \times 2.54}{101.51 + 2.54} = \frac{22.90}{104.05} = 0.220으로, η2\eta^2(0.276)보다 약간 작다.

Cohen’s f

f=η21η2f = \sqrt{\frac{\eta^2}{1 - \eta^2}}

ff해석
0.10작은 효과
0.25중간 효과
0.40 이상큰 효과

G*Power에서 표본 크기를 산출할 때 Cohen’s f를 사용한다.

실습 자료