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-분포표에서 확인)
👉 세 그룹 간의 평균에 통계적으로 유의미한 차이가 있다
'Data Science & AI > Data Analysis' 카테고리의 다른 글
| A/B test , Uplift Modeling (0) | 2024.12.01 |
|---|---|
| Apriori 연관 규칙 알고리즘 - 개념, 전처리 방법, 모델 적용 (1) | 2024.03.24 |
| Box-Cox , Yeo-johnson Transformation (0) | 2024.03.17 |
| 데이터 비닝과 WOE(Weight of Evidence), IV(Information Value) (0) | 2024.02.29 |
| [텍스트 분석] konlpy 한글 형태소 분석 (0) | 2024.02.22 |