분산분석의 이해
세 집단 이상의 평균 차이를 검정
분산분석이란?
세 집단 이상의 평균을 비교할 때 왜 ‘분산’을 살펴볼까요? 집단 간 변동과 집단 내 변동, F 통계량, 가설과 결과 해석, 분산분석의 종류를 차례로 정리합니다.
분산분석(ANOVA, Analysis of Variance)은 세 개 이상의 집단에서 측정한 평균이 서로 다른지 검정하는 통계분석 방법입니다. 두 집단의 평균을 비교할 때도 사용할 수 있지만, 일반적으로 세 집단 이상을 비교하는 상황에서 자주 활용합니다.
예를 들어, 기업에서 세 가지 광고 방식에 따른 소비자의 구매 의향을 조사했다고 가정해 보겠습니다.
- A 그룹: 이미지 중심 광고
- B 그룹: 제품 설명 중심 광고
- C 그룹: 사용자 후기 중심 광고
각 그룹의 구매 의향 평균이 다르게 나타났다면, 광고 방식에 따라 구매 의향이 달라진다고 볼 수 있을까요?
평균이 다르다는 사실만으로는 확신할 수 없습니다. 응답자마다 구매 의향이 다르고, 같은 광고를 본 사람들 사이에서도 응답에 차이가 발생하기 때문입니다.
분산분석은 이러한 개인 간 차이를 고려하면서 집단 사이의 평균 차이가 집단 내부의 자연스러운 변동에 비해 충분히 큰지 평가합니다.
세 그룹을 t검정으로 두 개씩 여러 번 비교하면 우연히 잘못된 결론을 내릴 위험이 커집니다. 분산분석은 세 집단을 한 번의 검정으로 비교해 이 문제를 줄입니다. 여러 번 비교할 때의 오류 문제는 4장 사후검정과 다중비교에서 자세히 다룹니다.
분산분석에서 쓰는 용어
| 용어 | 뜻 | 광고 예시 |
|---|---|---|
| 종속변수 | 비교하려는 수치형 결과 | 구매 의향 점수 |
| 독립변수(요인) | 집단을 나누는 기준 | 광고 방식 |
| 수준(집단) | 요인 안의 각 범주 | 이미지 · 제품 설명 · 사용자 후기 |
분산분석은 어떤 원리로 작동할까?
분산분석은 관측값의 변동을 크게 두 부분으로 나누어 살펴봅니다.
전체 변동은 모든 관측값이 전체 평균에서 얼마나 흩어져 있는지를 나타냅니다. 광고 예시라면 세 그룹을 구분하지 않고 모든 응답자의 구매 의향이 전체 평균을 중심으로 얼마나 퍼져 있는지를 보는 것입니다.
이 전체 변동은 두 부분으로 나뉩니다. 집단 간 변동은 각 집단의 평균이 전체 평균에서 얼마나 떨어져 있는지를 나타냅니다. 광고 방식별 구매 의향 평균이 서로 많이 다를수록 커집니다. 집단 내 변동은 같은 집단 안에서 개인별 측정값이 그 집단의 평균에서 얼마나 다른지를 나타냅니다. 같은 광고를 본 사람들 사이에서도 응답이 제각각일수록 커집니다.
즉, 한 응답자의 값이 전체 평균과 다른 이유는 그 사람이 속한 집단의 평균이 다르기 때문인 부분과 같은 집단 안에서도 사람마다 다르기 때문인 부분으로 나누어 볼 수 있습니다. 각 차이를 제곱해 모두 더하면 다음 관계가 성립합니다.
(전체 제곱합 = 집단 간 제곱합 + 집단 내 제곱합)
| 구분 | 무엇을 비교하나요? | 광고 예시 |
|---|---|---|
| 전체 변동 | 각 관측값 ↔ 전체 평균 | 모든 응답자의 구매 의향이 퍼진 정도 |
| 집단 간 변동 | 각 집단 평균 ↔ 전체 평균 (집단 크기만큼 반영) | 광고 방식별 구매 의향 평균의 차이 |
| 집단 내 변동 | 각 관측값 ↔ 자기 집단의 평균 | 같은 광고를 본 사람들 사이의 차이 |
핵심은 집단 간 차이가 집단 내 변동에 비해 얼마나 큰지 확인하는 것입니다. 이 두 가지 변동을 비교하여 계산하는 통계량이 F 통계량(F-statistic)입니다.
실제 계산에서는 두 변동을 그대로 나누지 않고, 각 제곱합을 자유도로 나눈 평균제곱끼리 비교합니다. 집단 간 변동은 집단 수가 많을수록, 집단 내 변동은 관측값 수가 많을수록 커지기 때문에, 자유도로 나누어 공정하게 비교할 수 있는 크기로 맞추는 것입니다.
모든 집단의 모집단 평균이 같다면 집단 평균 사이의 차이도 개인차에서 생기는 정도에 그치므로, F는 대체로 1 근처의 값을 가집니다. 집단 평균 사이의 차이가 개인차만으로 설명하기 어려울 만큼 크면 F는 1보다 훨씬 커집니다.
아래 그림 2에서 직접 확인해 보세요. 세 집단에 각각 8명씩 있으므로 집단 간 자유도는 3 − 1 = 2, 집단 내 자유도는 24 − 3 = 21입니다. ‘평균 간격’을 넓히면 집단 간 평균제곱이, ‘집단 내 퍼짐’을 키우면 집단 내 평균제곱이 커집니다. 점 하나를 멀리 끌어 보면 그 점이 속한 집단의 평균과 퍼짐이 함께 바뀌어 F가 어떻게 달라지는지도 볼 수 있습니다.
점을 위아래로 끌어 보세요. 평균 간격을 줄이거나 집단 내 퍼짐을 키우면 F가 작아집니다. 점은 매번 새로 뽑는 시뮬레이션 자료입니다.
집단 평균이 서로 비슷하고 집단 내 개인차가 크다면 F 통계량은 대체로 작아집니다. 반대로 집단 평균 사이의 차이가 크고 집단 내 개인차가 상대적으로 작다면 F 통계량은 커지는 경향이 있습니다.
다만 F 통계량이 크다는 사실만으로 결론을 확정하지는 않습니다. 표본 크기와 자유도를 고려한 p값을 함께 확인해야 합니다.
실제 사례로 이해하기
한 기업이 세 가지 교육 프로그램의 효과를 비교하기 위해 참가자의 교육 후 평가 점수를 측정했다고 가정해 보겠습니다. 아래 수치는 원리를 설명하기 위한 가상 데이터입니다.
| 프로그램 | 평균 점수 |
|---|---|
| A | 65점 |
| B | 73점 |
| C | 82점 |
평균만 보면 프로그램 C의 점수가 가장 높습니다. 하지만 이것만으로 프로그램 C가 통계적으로 유의하게 더 효과적이라고 결론 내릴 수는 없습니다.
평균 차이를 계산해 보면 B는 A보다 8점, C는 B보다 9점, C는 A보다 17점 높습니다. 그런데 이 차이가 의미 있는지는 차이의 크기만으로 판단할 수 없습니다. 같은 프로그램을 들은 참가자들끼리 점수가 얼마나 다른지와 함께 보아야 합니다.
예를 들어 다음 두 상황을 생각해 볼 수 있습니다.
- 상황 A: 각 프로그램의 참가자 점수가 비슷한 수준으로 모여 있고 평균은 서로 크게 다릅니다.
- 상황 B: 각 프로그램의 참가자 점수가 매우 넓게 퍼져 있고 평균 차이는 상대적으로 작습니다.
두 상황에서 평균이 같더라도 분산분석 결과는 달라질 수 있습니다. 바로 집단 내 변동까지 함께 고려하기 때문입니다.
상황 A에서는 같은 프로그램 참가자들의 점수가 평균 근처에 촘촘히 모여 있습니다. 세 프로그램의 점수 범위가 거의 겹치지 않아서, 점수만 보아도 어느 프로그램 참가자인지 대체로 짐작할 수 있습니다. 집단 내 변동이 작으니 8~9점의 평균 차이가 상대적으로 크게 드러나고, F 통계량도 커집니다.
상황 B에서는 평균은 똑같지만 참가자 점수가 넓게 흩어져 세 프로그램의 점수가 많이 겹칩니다. 예를 들어 A 프로그램 참가자 중에도 B 프로그램 평균보다 높은 점수를 받은 사람이 있습니다. 이렇게 개인차가 크면 8~9점의 평균 차이가 표본을 뽑을 때 생긴 우연한 차이일 가능성을 배제하기 어렵고, F 통계량은 작아집니다.
| 구분 | 상황 A | 상황 B |
|---|---|---|
| 프로그램별 평균 | 65 · 73 · 82점 | 65 · 73 · 82점 (같음) |
| 집단 간 변동 | 같음 | 같음 |
| 집단 내 변동 | 작음 (점수가 모여 있음) | 큼 (점수가 넓게 퍼짐) |
| F 통계량 | 큼 | 작음 |
| 해석 | 평균 차이의 근거가 상대적으로 강함 | 평균 차이를 확신하기 어려움 |
참가자 수도 결과에 영향을 줍니다. 같은 정도로 퍼져 있더라도 각 프로그램의 참가자가 많으면 평균을 더 정확하게 추정할 수 있어, 같은 평균 차이라도 더 분명한 근거가 됩니다. 이 부분은 자유도와 p값을 통해 반영됩니다. 앞의 그림 2에서 ‘평균 간격’은 그대로 두고 ‘집단 내 퍼짐’만 키워 보면 상황 A가 상황 B로 바뀌면서 F가 작아지는 것을 확인할 수 있습니다.
가설은 어떻게 세울까?
분산분석에서는 일반적으로 다음과 같은 가설을 설정합니다.
- 귀무가설(H₀): 모든 집단의 모집단 평균은 같다.
- 대립가설(H₁): 모든 집단의 모집단 평균이 같지는 않다.
세 집단을 비교한다면 다음과 같이 표현할 수 있습니다.
H₁ : 적어도 하나의 모집단 평균이 다르다
여기서 중요한 점은 대립가설이 모든 집단의 평균이 서로 다르다는 의미는 아니라는 것입니다. 적어도 한 집단의 평균이 다른 집단과 다르면 대립가설을 지지할 수 있습니다.
분산분석의 F검정은 이처럼 여러 가능성을 한꺼번에 묻는 전체 검정(omnibus test)입니다. 어느 집단이 다른지, 어느 쪽으로 다른지는 구분하지 않고 “평균이 모두 같다”는 가정이 자료와 잘 맞는지만 평가합니다.
일반적으로 유의수준을 0.05로 설정하고 p값을 확인합니다.
분산분석의 p값은 모든 모집단 평균이 같다고 가정했을 때, 지금 관측한 것만큼 크거나 더 큰 F 통계량이 나올 확률입니다. F는 제곱합끼리의 비율이라 0보다 작아질 수 없고, 평균 차이가 클수록 커지기만 하므로 F분포의 오른쪽 꼬리만 봅니다. 따라서 p값이 작다는 것은 “평균이 모두 같다면 이 정도로 큰 F는 잘 나오지 않는다”는 뜻입니다.
| 결과 | 해석 |
|---|---|
| p값 < 0.05 | 귀무가설을 기각합니다. 집단 평균 사이에 통계적으로 유의한 차이가 있다는 근거가 있습니다. |
| p값 ≥ 0.05 | 귀무가설을 기각하지 못합니다. 집단 평균 차이를 확인할 충분한 근거가 없습니다. |
p값이 0.05 이상이라고 해서 모든 집단의 평균이 같다는 사실이 증명되는 것은 아닙니다. 표본 크기가 작거나 변동이 큰 경우 실제 차이를 발견하지 못할 수도 있습니다.
분산분석 결과는 어떻게 해석할까?
다음은 교육 프로그램 비교에서 나올 수 있는 가상의 결과입니다.
가상의 결과이며, 실제 분석에서는 표본 크기와 자유도에 따라 F 통계량과 p값을 계산합니다.
p값이 0.05보다 작으므로 세 프로그램의 모집단 평균이 모두 같다는 귀무가설을 기각합니다.
논문이나 보고서에서는 F 통계량과 함께 두 자유도를 적어 F(집단 간 자유도, 집단 내 자유도) = 8.42, p = .001과 같은 형식으로 보고합니다. 같은 F 값이라도 자유도에 따라 p값이 달라지기 때문입니다.
이 결과를 보고 “프로그램 C가 가장 효과적이다”라고 바로 결론 내리면 안 됩니다. 분산분석은 집단 평균에 차이가 있는지를 검정하지만, 어떤 집단과 어떤 집단 사이에 차이가 있는지까지 직접 알려주지는 않기 때문입니다.
이때 사후검정(post-hoc test)을 활용합니다. 예를 들어 Tukey HSD 검정으로 A와 B, A와 C, B와 C의 차이를 각각 비교할 수 있습니다. 사후검정은 전체 검정에서 유의한 차이가 확인된 뒤 집단 간 차이를 구체적으로 파악할 때 주로 사용합니다.
사후검정의 종류와 고르는 기준은 4장 사후검정과 다중비교에서 자세히 다룹니다.
또한 통계적 유의성이 반드시 실무적으로 큰 효과를 의미하지는 않습니다. 실제 차이의 크기를 평가하려면 효과크기도 함께 살펴보는 것이 좋습니다.
분산분석에서 자주 쓰는 효과크기인 에타제곱(η²)은 2장 일원분산분석에서 예제 데이터로 직접 계산해 봅니다.
분산분석은 언제 사용할까?
분산분석은 연구 목적과 데이터의 구조에 따라 여러 유형으로 나뉩니다.
하나의 독립변수에 속한 세 개 이상의 집단 평균을 비교합니다.
예: 교육 방식에 따른 시험 점수 비교
두 개의 독립변수가 종속변수와 관련되는 양상을 살펴보고, 두 변수의 상호작용도 검정합니다.
예: 광고 방식과 연령대에 따른 구매 의향 비교
같은 대상에게 여러 시점 또는 조건에서 측정한 점수를 비교합니다.
예: 프로그램 참여자의 사전·중간·사후 점수 비교
서로 관련된 여러 종속변수를 함께 고려해 집단 차이를 검정합니다.
예: 교육 방식에 따른 성취도, 학습 동기, 만족도의 종합적 차이 비교
유형을 고를 때는 다음 순서로 질문해 보면 좋습니다. 집단을 나누는 기준(요인)이 몇 개인가? 하나면 일원, 둘이면 이원분산분석입니다. 같은 대상을 여러 번 측정했는가? 그렇다면 반복측정 분산분석을 고려합니다. 함께 비교할 결과변수가 여러 개인가? 그렇다면 다변량분산분석을 검토합니다.
이원분산분석에서 말하는 상호작용은 한 요인의 효과가 다른 요인의 수준에 따라 달라지는 현상입니다. 예를 들어 사용자 후기 광고가 20대에게는 효과가 크지만 50대에게는 거의 차이가 없다면, 광고 방식과 연령대 사이에 상호작용이 있다고 봅니다.
이 밖에도 공변량을 통제하는 ANCOVA, 집단 간 요인과 반복측정 요인을 함께 다루는 혼합설계 분산분석, 여러 종속변수와 공변량을 함께 다루는 MANCOVA 등이 있습니다.
적용하기 전에 무엇을 확인할까?
분산분석을 적용하기 전에 다음 사항을 확인해야 합니다.
| 확인 항목 | 확인할 질문 |
|---|---|
| 종속변수 | 비교하려는 결과가 점수, 측정값 등 수치형 변수인가? |
| 독립변수 | 비교할 집단이 어떻게 정의되어 있는가? |
| 독립성 | 관측값이 서로 독립적인가? 같은 사람을 반복 측정한 자료는 아닌가? |
| 정규성 | 각 집단의 오차 또는 잔차가 정규성 가정에 부합하는가? |
| 등분산성 | 집단별 오차의 분산이 비슷한가? |
일반적인 일원분산분석에서는 관측값의 독립성, 오차의 정규성, 집단 간 등분산성을 주요 가정으로 검토합니다. 다만 가정 위반이 있다고 무조건 분석이 불가능한 것은 아닙니다. 데이터 구조와 위반 정도에 따라 Welch 분산분석, 변환, 강건한 방법 또는 비모수 검정을 검토할 수 있습니다.
가정을 확인하는 구체적인 방법과 가정이 어긋날 때의 대안은 11장 분산분석의 가정과 대안에서 자세히 다룹니다.
같은 응답자에게서 여러 차례 측정한 자료를 독립된 집단의 자료처럼 취급하면 안 됩니다. 이 경우에는 반복측정 분산분석이나 혼합모형 등 자료 구조에 맞는 방법을 선택해야 합니다.
분산분석은 평균만이 아니라 변동을 함께 비교합니다.
분산분석은 집단 평균의 차이를 검정하는 방법이며, 평균 자체만 비교하는 것이 아니라 집단 간 변동과 집단 내 변동을 함께 고려합니다. 기억할 핵심은 세 가지입니다.
- F 통계량: 집단 간 변동이 집단 내 변동에 비해 얼마나 큰지 나타냅니다.
- p값: 관측된 결과가 귀무가설 아래에서 얼마나 이례적인지 평가하는 데 사용합니다.
- 사후검정과 효과크기: 차이가 확인된 뒤 어느 집단 사이에 차이가 있는지, 그 차이가 얼마나 큰지 파악합니다.
다음 학습에서는 하나의 독립변수로 여러 집단의 평균을 비교하는 일원분산분석(One-way ANOVA)을 구체적인 데이터와 분석 결과를 통해 살펴봅니다.
분산분석은 집단 사이의 평균 차이를 집단 안의 자연스러운 변동과 비교해 F 통계량으로 요약합니다. 유의한 결과가 나오면 사후검정으로 어느 집단이 다른지, 효과크기로 차이가 얼마나 큰지 이어서 확인합니다.