본문 바로가기
Data Science & AI/Data Analysis

ANOVA(Analysis of Variance , 분산 분석)

by skwkiix 2024. 6. 1.
728x90

ANOVA(Analysis of Variance , 분산 분석)이란?

집단 간의 차이를 비교하기 위한 분석이다.

두 집단까지는 평균 차이(T-Test)를 이용하여 검정하였지만, 세 집단부터는 분산(F-통계량)을 이용해서 통계적 유의성을 검정한다.

 

🔎 왜 세 집단 이상부터는 평균(Average)이 아니라, 분산(Variance) 을 이용해서 검정할까?

T검정을 독립적으로 연속해서 수행할 경우, 유의 수준(significance level)이 왜곡된다.

예를 들어 A,B,C 세 집단이 있다. 이들의 평균을 비교하고, 해당 표본 집단의 평균이 모집단에서도 유의한지 검정해보려면 두 집단씩 T- Test 를 하게 된다.(A와 B 비교, A와 C 비교, B와 C 비교)
유의 수준을 5%(두 집단 간 평균 차이가 우연히 발생할 확률)로 설정하고, 세 번의 비교를 모두 독립적으로 수행하면, 여러 번의 비교에서 우연히 유의미한 결과가 나올 확률이 처음에 설정한 유의 수준 5%보다 훨씬 높은 14.26%로 증가하게 된다.

(1 - 0.05) * (1 - 0.05)*(1 - 0.05) = 0.95*0.95*0.95 = 0.857
1 - 0.857375 = 0.1426


이러한 결과를 보정하기 위해 Bonferroni 보정을 수행하기도 한다.

전체 유의 수준을 5% 이내로 맞추기 위해, 각 검정의 유의수준을 제어하는 방식이다.

0.05/3 = 0.016 , 전체 유의수준을 5%이내로 맞추기 위해서, 각 검정 당 유의 수준을 약 1%으로 맞추는 것이다.

하지만, 여러번의 검정 과정을 수행하기가 귀찮으므로, 단 한번의 ANOVA로 계산하는 것이다.

 

👉 ANOVA는 모든 집단 간의 평균 차이를 한 번에 비교하여, 전체 유의 수준을 제어한다.


ANOVA 계산 원리

1. 가설 설정

  • 귀무가설 (𝐻0): 모든 집단의 평균이 같다.​
  • 대립가설 (𝐻𝑎): 적어도 하나의 집단 평균이 다르다.

2. F-통계량 계산

 

F 통계량  = 집단 간 변동성 / 집단 내 변동성 으로 계산한다.

 

집단 간 변동성과 집단 내 변동성을 이해하기 위해 총 변동성을 계산하는 식을 살펴보자.

총 변동성 = 집단 간 변동성 + 집단 내 변동성 이다. 변동성의 척도인 분산을 이용해서 계산할 것이다.

따라서 집단 간 분산과 집단 내 분산을 계산하면 된다.

 

👉 분산은 제곱합을 사용하여 계산할 수 있다.

 

$ \sum_{i=1}^{N} (Y_i - \bar{Y})^2 =  \sum_{j=1}^{k} n_j (\bar{Y}_j - \bar{Y})^2 + \sum_{j=1}^{k} \sum_{i=1}^{n_j} (Y_{ij} - \bar{Y}_j)^2 $

 

👉 각 제곱합을 분산으로 변환하기 위해 자유도(degrees of freedom)를 사용한다.

자유도 계산 방식을 간단하게 알아보자.

 

집단 간 분산 = 집단 간 제곱합 / 집단 간 자유도

집단 내 분산 = 집단 내 제곱합 / 집단 내 자유도

 

총 자유도 = 집단 간 자유도(집단의 수에서 1을 뺀 값) + 집단 내 자유도(전체 데이터 수에서 집단 수를 뺀 값) 이다.

$ df_{total} = N - 1,   df_{B} = k - 1 ,   df_{W} = N - k $

따라서 총 자유도는  k - 1 + N -k = N - 1 이 된다.

 

3. 유의수준과 임계값 확인

설정한 유의수준을 가지고, F-통계량 표에서 임계값을 확인한다.

F-통계량 > 임계값 이면, 귀무가설을 기각한다.

 

🔎 귀무가설 기각의 의미

F 통계량  = 집단 간 변동성 / 집단 내 변동성 이다.

따라서 F 통계량이 임계값 이상이라면, 집단 내 변동성에 비해 집단 간 변동성 유의미하게 크다는 뜻이고, 적어도 하나의 그룹 평균이 다른 그룹과 유의미하게 다르다는 것을 의미한다(어떤 그룹이 큰지는 알 수가 없다)

 


예시를 통해 살펴보자.

세 그룹의 학생들이 시험 점수가 있다.

- 그룹 1 : [85, 90, 88, 92, 85]
- 그룹 2 : [78, 74, 80, 85, 79]
- 그룹 3 : [92, 95, 93, 90, 91]

1. 각 그룹의 평균 계산

- 그룹 1 평균 : (85 + 90 + 88 + 92 + 85) / 5  = 88
- 그룹 2 평균 : (78 + 74 + 80 + 85 + 79) / 5 = 79.2

- 그룹 3 평균 : (92 + 95 + 93 + 90 + 91)/5 = 92.2

2. 전체 평균 
 = (85 + 90 + 88 + 92 + 85 + 78 + 74 + 80 + 85 + 79 + 92 + 95 + 93 + 90 + 91) / 15 = 86.4

3. 제곱합 계산

총 제곱합: 각 점수와 전체 평균의 차이를 제곱한 합

= (85-86.4)^2 + (90-86.4)^2 + (88-86.4)^2 + (92-86.4)^2 + (85-86.4)^2 + (78-86.4)^2 + (74-86.4)^2 + (80-86.4)^2 + (85-86.4)^2 + (79-86.4)^2 + (92-86.4)^2 + (95-86.4)^2 + (93-86.4)^2 + (90-86.4)^2 + (91-86.4)^2 = 554.4

집단 간 제곱합 : 각 그룹의 평균전체 평균의 차이를 제곱한 후 각 그룹의 데이터 수를 곱한 합:
5*(88-86.4)^2 + 5*(79.2-86.4)^2 + 5 *(92.2 - 86.4)^2

= 5*(2.56 + 52.36 + 32.49)

= 437.05

집단 내 제곱합: 각 점수와 해당 그룹 평균의 차이를 제곱한 합
(85-88)^2 + (90-88)^2 + (88-88)^2 + (92-88)^2 + (85-88)^2 + (78-79.2)^2 + (74-79.2)^2 + (80-79.2)^2 + (85-79.2)^2 + (79-79.2)^2 + (92-92.2)^2 + (95-92.2)^2 + (93-92.2)^2 + (90-92.2)^2 + (91-92.2)^2 

= 2.25 + 4 + 0 + 16 + 9 + 1.44 + 27.04 + 0.64 + 33.64 + 0.04 + 0.04 + 7.84 + 0.64 + 4.84 + 1.44 

= 109.9

4. 자유도 계산

- 총 자유도:  N - 1 = 15 - 1 = 14
- 집단 간 자유도 : k - 1 = 3 - 1 = 2
- 집단 내 자유도 : N - k = 15 - 3 = 12

5. 분산 계산

- 집단 간 분산 : 437.05 / 5 = 218.525
- 집단 내 분산 : 109.9/12 = 9.158

6. F-통계량 계산
F =218.525 / 9.158 = 23.86

7. 결론
F-통계량 = 23.86

유의수준 = 0.05에 대한 임계값 :  약 3.89(F-분포표에서 확인)
👉 세 그룹 간의 평균에 통계적으로 유의미한 차이가 있다

728x90