Welch's ANOVA

이분산성에 따른 대안적 분산분석

by Yimhyehwa


Welch's ANOVA는 보통의 분산분석(ANOVA)에서 비교하려는 그룹들의 분산이 제각각인 '이분산성' 상태일 때, 일반적인 ANOVA 대신에 활용하는 검정 방법입니다. Welch's ANOVA는 데이터가 많이 퍼져 있는 그룹의 영향력을 체계적으로 조절하여, 통계 검정의 결론이 왜곡되지 않도록 보정하는 역할을 합니다. Welch's ANOVA를 통해 집단 간 차이가 있다는 것을 확인했다면, 등분산 가정이 필요 없는 Games-Howell 같은 분석법으로 어느 그룹끼리 차이가 있는지 확인이 가능합니다. Welch's ANOVA는 Jamovi를 통해 손쉽게 검정이 가능합니다. 이 검정방법은 수식이 워낙 복잡하고, 기초통계의 범주를 벗어난다고 볼 수 있습니다. 다만, ANOVA라는 하나의 통계 검정 주제에 대해 다양한 내용을 다루고자 연재 글에 반영하게 되었습니다.



1. Learning Focus


지난 시간에 일원분산분석(One-way ANOVA)을 통해 세 개 이상의 집단 평균 차이를 검정하는 방법을 학습했습니다. 이 과정에서 중요한 전제조건이 있었는데, 그중 하나가 등분산성이었습니다. 각 집단의 분산은 서로 같아야 한다는 조건(Homogeneity of Variance) 입니다.


하지만 현실의 데이터 세계에서는 이 가정이 매우 자주 깨집니다. 예를 들어, 광고 A의 성과 데이터는 분산이 매우 작아 안정적인 구조를, 광고 B의 성과 데이터는 분산이 매우 커서 성과의 편차가 매우 큰 구조를, 광고 C의 성과 데이터는 특정 지역에서만 매우 높은 성과 데이터를 보여 비대칭적인 구조로 분산이 형성되어 있을 수 있습니다.


이러한 상황에서는 일반적인 ANOVA를 사용할 경우 잘못된 p-value를 도출하여 잘못된 결론을 내릴 문제가 발생합니다. 이러한 문제를 해결하기 위해 등장한 대안적 방법이 Welch's ANOVA 입니다. 오늘은 이에 대해서 살펴보겠습니다. 시작에 앞서 Welch's ANOVA는 수식이 복잡하고, 기초통계의 범주에서 구체적으로 다뤄지는 파트는 아닙니다. 그래서 실제 Data Set에 대한 분석 시에는 여러 통계 S/W를 통해 손쉽게 검정 결과를 얻고 그 값에 대한 해석만 할 수 있어도 괜찮습니다.


2. 등분산 가정이 중요한 이유


일반적인 ANOVA는 F-통계량을 집단 간 변동의 평균 제곱합(MS_Between)과 집단 내 변동의 평균 제곱합(MS_Within)의 비율로 계산합니다. 이때 "모든 집단이 동일한 모집단의 분산(σ^2)을 가진다."라는 중요한 전제가 있기 때문에 집단 내 변동의 평균 제곱합은 공정한 기준점이 되고, 집단 간 변동의 평균 제곱합은 비교 값의 의미를 가질 수 있게 됩니다.


그런데 등분산 가정이 깨지면 어떤 문제가 생길까요? 예를 들어 A, B, C 집단의 평균이 각각 40, 45, 50인데 분산이 각각 2, 20, 2라고 가정하겠습니다. 이 경우 B 집단은 매우 불안정한 반면 A와 C 집단은 안정적입니다. 이런 상황에서 일반적인 ANOVA를 사용하면 큰 분산을 가진 집단이 결과를 왜곡할 가능성이 높아집니다. 이에 p-value가 과소하거나 과대하게 추정될 수 있습니다. 즉, 잘못된 유의성 판단이 이뤄질 수 있습니다.


3. Welch F-통계량의 수식(구조)


Welch F-통계량을 계산하는 식은 아래 왼쪽과 같습니다. 지난 일원분산분석에서 계산하는 F-통계량과 비교할 때, 상당히 복잡한 수식으로 구성되어 있습니다. 이렇게 Welch F-통계량을 복잡한 수식에 따라 계산하는 이유는 등분산의 가정이 깨진 집단 간의 변동성을 세밀하게 측정하기 위해 ① 분산과 표본의 크기가 서로 다른 집단의 변동에 따라 발휘된 영향력을 조정(가중치 반영)하기 위한 것이며, ② 각 집단의 분산을 각각 추정함에 따라 발생하는 불확실성의 증가로 자유도를 보정하기 때문입니다.


image.png


이제 위 공식의 [분자]와 [분모]의 수식을 차례대로 도해하여 살펴보겠습니다.


4. [분자] 수식에 대한 접근


Welch's ANOVA는 일반 ANOVA에서 "모든 집단을 동일하게 취급한다."라는 논리에서 "각 집단의 분산에 따라 가중치를 다르게 부여한다." 라는 논리로 전환합니다. 즉, 분산이 작은 집단에 대해 더 큰 신뢰성을 부여하고, 분산이 큰 집단에 대해서는 낮은 신뢰성을 부여하는 방식으로 변경합니다.


4-A. 각 집단에 대한 가중 평균


Welch's ANOVA에서는 분산이 작은 집단의 평균을 더 신뢰하고, 분산이 큰 집단의 평균을 덜 신뢰합니다. 그래서 각 집단의 평균에 가중치를 둡니다. 그 가중치는 아래와 같습니다.


image.png


왜 위와 같은 식이 도출되었는지 생각해보겠습니다. 우리가 계산한 평균이 얼만큼의 불확실성을 갖고 있는지 확인하려면 보통 ①의 수식과 같이 표준오차를 계산합니다. 만약 분산이 크면 데이터가 제각각이라 평균을 신뢰하기 어렵습니다. 그리고 표본의 수가 적으면 이 평균이 단지 우연에 의한 것으로 볼 수도 있어 불확실성이 증가합니다.


image.png


②의 수식은 평균의 표준오차에 관한 수식의 역수를 취합니다. 이는 각 집단 평균의 정밀도(Precision)를 나타냅니다. 이 정밀도는 숫자가 커질수록 좋은 의미가 되도록 설계되어 있습니다. 즉, 표본의 수가 많을수록 "많은 데이터를 확보할 수 있어 신뢰할 만하다."라는 것을 나타내고, 분산이 작을수록 "데이터가 비슷하게 모여 있는 구조를 갖고 있어 평균의 정확성이 높다."라는 것을 나타냅니다. 결국 Welch's ANOVA에서 사용하는 가중 평균은 곧 "각 집단의 평균을 얼마나 신뢰할 수 있는가"의 척도가 됩니다.


4-B. 집단 전체에 대한 가중 평균


일반 ANOVA와 달리 Welch's ANOVA에서는 각 집단 평균의 신뢰도가 다르기 때문에, 집단 전체의 평균도 단순 평균이 아닌 가중평균을 사용해야 합니다. 집단 전체의 가중평균은 다음과 같은 수식으로 계산됩니다.


image.png


이 평균은 분산이 작고 표본 수가 많은 집단 평균에 더 큰 비중을, 분산이 크고 표본 수가 적은 집단 평균에 더 작은 비중을 부여합니다. 즉, Welch는 "집단 전체의 중심" 값 자체를 다시 정의합니다.


4-C. 집단 간 차이의 평균 크기 측정


우리가 알고자 하는 것은 Welch ANOVA 검정에서도 동일합니다. "각 집단의 평균 차이가 통계적으로 유의한가?" 입니다. 일반적인 ANOVA에서는 집단 평균들이 전체 평균에서 얼마나 떨어져 있는지를 계산했습니다. Welch ANOVA 역시 이와 유사한 논리로 접근하되, 가충치를 반영합니다. 그래서 다음의 계산식을 활용합니다.


image.png


①의 수식은 가중치를 반영한 집단 간 변동분입니다. 즉, 신뢰할 수 있는 집단 평균이 전체 평균 대비 차이가 크다면 큰 값이 나오고, 불안정한 집단의 평균이 전체 평균 대비 차이가 크다고 할지라도, 가중치가 작으면 그만큼 영향력이 작아지도록 설계되어 있습니다.


②의 수식은 가중치를 반영한 집단 간 변동분의 평균입니다. 이는 앞선 단원에서 학습했던 일원분산분석의 F-통계량의 분자인 [MS_Between]의 수식 구조와 유사합니다. 분자의 자유도(df1) 역시 [k-1]로 동일합니다.


5. [분모] 수식에 대한 접근


일원분산분석의 [MS_Between](분자)은 "전체 평균에서 각 집단이 얼마나 멀리 떨어져 있는가?"를 나타낸 값입니다. Welch ANOVA의 분자 값도 이와 유사한 원리라는 것을 알 수 있었습니다. 다만, '신뢰할 수 있는 집단(분산이 작은 집단)에 더 큰 가중치를 곱하여 그들의 차이를 중요하게 취급한다는 점이 차이가 있었습니다.


일원분산분석의 [MS_Within](분모)은 모든 집단의 분산을 하나로 뭉쳐서 "평균적인 오차"를 계산합니다. 하지만 Welch ANOVA는 이 방식을 사용하지 않습니다. 각 집단의 분산이 제각각이기 때문입니다. 이에 Welch ANOVA는 집단 내 오차를 하나로 합치는 대신, 각 집단의 서로 다른 분산과 표본의 크기에서 나타날 수밖에 없는 불안정성을 수치적으로 보정합니다. 이 보정의 과정은 대단히 복잡하게 구성되어 있습니다.


image.png


위와 같은 분모 보정값을 ①과 ②로 쪼개어 살펴보겠습니다.

우선 ①의 부분을 살펴보겠습니다. 이 부분은 일종의 [패널티]와 같습니다. [1/n-1] 부분을 보면, 표본 크기가 클수록 이 값이 작아집니다. 즉 데이터가 많일수록 "이 집단은 신뢰할 만하다."라고 판단하여 전체 패널티의 합산에서 비중을 줄여줍니다. 그리고 [1-w_i/W)^2 부분을 보면, [w/W]는 전체 가중치 대비 해당 집단이 차지하는 비중입니다. 분산이 매우 작아서 가중치가 압도적으로 크면, 이 비중이 1에 가까워집니다. 그러면 (1-비중)의 제곱은 0에 가까워져 패널티가 소멸됩니다.


통계학에서 패널티를 부여하는 이유는 "불확실성" 때문입니다. 표본이 적거나 분산이 매우 커서 "이 평균이 실제 모수의 특성을 잘 반영하는가?"의 관점에서 의심이 되는 집단이 있다면, Welch ANOVA는 분모를 크게 만들어 F-통계량을 깎아버립니다. 반면, 표본이 크고 분산이 작으면 "이 데이터는 전반적으로 믿을 수 있다."고 보고, 패널티를 줄여줍니다. 그러면 분모가 작아져 F-통계량이 커지고, 유의미한 차이를 발견할 확률이 높아집니다.


①의 부분에서 중요하게 살펴봐야 하는 점은 자유도에 관한 것입니다. 일반적인 ANOVA의 경우 분모에 해당하는 [MS_Within]은 모든 집단의 오차를 합산(SS_Within)한 뒤, 마지막에 전체 자유도(N-k)로 한 번에 나눕니다. 각 집단의 분산이 크든 작든, 표본의 크기가 많든 적든 상관없이 "평균적인 오차" 하나만 계산합니다. 이때 자유도는 수식 외부에서 정해진 숫자로만 작동합니다.


반면, Welch ANOVA의 분모 ①의 부분을 보면, 집단별 자유도(n_j-1)가 계산의 재료로 직접 반영되어 있습니다. 분산이 서로 다른 상황에서는 전체 자유도를 하나로 사용할 수 없습니다. 그래서 집단별로 사용할 수 있는 표본의 크기를 각각 수식에 직접 대입하여 계산합니다. 그리고 표본의 크기가 적은 집단이 있을 경우, (1/n_j-1) 값이 커지면서 분모 전체에 영향을 줍니다. 즉, 데이터가 부족한 집단의 불안정성을 분모가 그대로 반영함으로써 F_통계량을 조절하는 것입니다.


다음으로 ②의 부분을 보겠습니다. ②의 부분은 불확실성에 대한 교정 계수(Adjustment Factor) 역할을 합니다. 기존의 ANOVA에서는 모든 집단에서 추출된 공통의 오차를 활용하기 때문에, F-분포의 형태에 대한 일종의 믿음(두 개의 카이제곱 분포의 비율)이 있었습니다. 그러나 각 집단의 분산이 다르다면, 애초에 의도했던 분모의 성질(형태)를 가질 수 없기 때문에 계산된 F-통계량이 F-분포의 어디에 위치하는지를 비교하는 검정 자체가 의미가 없어집니다.


Welch ANOVA는 위와 같은 문제를 해결하는 방법을 채택합니다. 즉, F-통계량의 분모를 기존의 ANOVA에서 계산하는 F-통계량의 분모의 논리대로 접근하지 않고, "집단의 개수(k)가 많아질수록 발생하는 오차의 편향(Bias)"을 보정하기 위해 몇 가지 계수를 적용하여 곱합니다.


먼저 [1+...] 부분은 기본값 1에 무언가를 더한다는 뜻입니다. 즉, 분모를 원래보다 조금 더 크게 만들겠다는 의지를 반영합니다. 분모가 커지면 F-통계량이 작아지고, 검정은 더 보수적(엄격)으로 이뤄집니다.


[2(k-2)/k^2-1] 부분에서 k(집단의 수)는 비교하려는 그룹이 많아질수록, 통계적으로 우연한 차이가 나타날 확률도 높아집니다. 이 부분의 수식은 집단이 많아짐에 따라 발생하는 불안정성을 수치화해서 반영합니다. 그리고 [k^2-1]은 집단 수의 제곱에 비례하여 보정의 강도를 조절하는 것입니다. 그래서 ②의 수식을 보통 근사치(Approximation)를 찾기 위해 유도한 결과물로 정의합니다. 집단별 분산이 다르므로, 기준의 F-검정은 실익이 없는 방법이 되니까 실제 데이터의 분포와 가장 비슷하게 닮은 새로운 분포를 만들겠다는 고민이 반영된 것입니다. 따라서 "집단이 여러 개일때, 각기 다른 분산들 때문에 생기는 통계적인 잡음을 제거하는 필터"의 역할을 하게 됩니다.


만약 집단이 2개인 경우(k=2), 분자 부분의 (k-2)가 0이 되어 이 복잡한 항 전체가 사라지게 됩니다. 이렇게 되면 Welch t-test와 똑같아집니다. 반면, 집단이 3개 이상인 경우(k≥3), 비로소 이 필터가 작동을 하면서 여러 집단 사이의 복잡한 분산 불균형을 정교하게 보정하기 시작합니다.


6. [분모]의 자유도(df_2)


image.png


Welch ANOVA에서 가장 어려운 부분이 바로 이 분모에 대해 적용하는 자유도(df2) 입니다. 이 수식은 "분산이 서로 제각각인 상황에서 계산하는 F-통계량이 가질 수 있는 최적의 자유도"를 계산하기 위해 설계되었습니다. 이 수식을 크게 세 부분으로 나눠서 살펴보겠습니다.


첫째, 분자 [k^2-1] 부분입니다. 이 부분은 앞서 Welch ANOVA의 F-통계량 계산에서 분모에 설계된 수식입니다. F-통계량 계산식에서 이 부분은 집단이 많아질수록 발생하는 다양한 오차를 다듬기 위해 표준적인 크기로 줄여주는 역할을 하기 위해 분모에 배치됩니다. 반면, 자유도 계산 시에는 우리가 비교하려는 전체 대상이 많아질수록 전체적인 정보의 양도 늘어야한다는 상식을 반영하여 분자에 배치됩니다.


둘째, 분모 [3]을 곱하는 부분입니다. 여기서 상수로 반영되어 있는 '3'은 추정된 분산의 분산을 반영하는 보정 상수입니다. Welch ANOVA는 "분산 자체도 랜덤한 변수"로 간주합니다. 그래서 분산이라는 랜덤한 변수의 불확실성을 보정하기 위해 보정 상수를 삽입합니다.


이 '3'은 통계학에서 정규분포의 성질을 나타내는 아주 중요한 상수입니다. ANOVA 역시 데이터가 정규분포를 따른다고 가정합니다. 정규분포를 따르는 데이터에서 '편차의 제곱'을 다룰 때, 그 변동의 변동(분산의 분산)을 계산하면 수학적으로 항상 3이라는 숫자가 등장합니다. Welch ANOVA는 "분산이 서로 다른 집단들을 합칠 때 발생하는 오차를 정확하게 계산하려면, 정규분포의 핵심 수치인 3을 넣어서 스케일을 조정해야 한다."라고 판단한 것입니다.


이 '3'이란 상수는 환율과 같은 역할입니다. 우리가 미국의 달러(F-분포)와 우리 원화(실제 데이터)를 비교하려면, 중간에 환율이라는 상수를 곱해야 단위를 맞출 수 있습니다. 이 환율을 무시하고 계산을 하게 되면, 실제의 가치(통계적 유의성)를 완전히 잘못 판단하게 되는 것과 같은 오류에 빠질 수 있습니다.


만약 '3'이라는 숫자가 없다면, 분모가 3배 작아지니 자유도는 실제보다 3배나 크게 계산이 됩니다. 자유도가 너무 크면 통계 프로그램은 "데이터가 아주 많고 정확하구나."라고 착각을 하게 되고, 실제로는 차이가 없음에도 "차이가 있다(p<.005)"라는 가짜 결론을 내릴 수도 있습니다. 이것은 제1종 오류와 관련됩니다. 결국 '3'의 역할은 "자유도 값을 낮추는 효과"인 것입니다. 하지만 단순히 낮추는 것이 목적이 아니라, "이 데이터는 분산이 제각각이므로, 3만큼의 불확실성이 더 있기 때문에, 그만큼 자유도를 깎아서 최적의 자유도를 설계하겠다."라는 통계적인 논리가 반영된 것입니다.


셋째, 분모 '∑'에 달려 있는 수식 부분입니다. 이 부분은 앞서 F-통계량의 분모 계산식에서 살펴봤듯이, 집단의 가중치와 각 집단의 자유도를 조합하여 설계되었습니다. 어떤 집단이 유독 분산이 커서 가중치가 낯거나 표본 크기가 적다면, 이 값이 커져서 전체 분모의 값을 크게 만들고, 결과적으로 최종 자유도를 떨어뜨리는 역할을 합니다. 앞서 [k^2-1] 부분에서 집단 간 분산이 불규칙하다면, 분모가 커지는 속도가 이 [k^2-1] 부분이 커지는 속도를 압도하게 설계되어 있습니다.


7. 실습을 통한 확인


아래 가상의 세 집단에 대한 Data Set을 활용하여 일반적인 ANOVA와 Welch ANOVA의 검정 결과를 비교해보겠습니다. 일반적인 ANOVA를 "SF-검정(Student't F-test)", Welch ANOVA를 "WF-검정(Welch's F-test)"라고 용어를 통일하여 후술하겠습니다.


image.png


7-A. 기술통계량: 평균과 분산


[ 그룹 A ] n=6

40, 41, 39, 40, 41, 39

평균=40, 분산=0.8

[ 그룹 B ] n=6

30, 60, 25, 70, 20, 80

평균=47.5, 분산=597.5

[ 그룹 C ] n=6

50, 51, 49, 50, 51, 49

평균=50, 분산=0.8


7-B. 가중치 및 가중 평균 계산


[ 가중치 ]

그룹 A: 6/0.8=7.5

그룹 B: 6/597.5=0.010

그룹 C: 6/0.8=7.5

가중치 총합(W)=7.5+0.010+7.5=15.01


[ 집단 전체 가중 평균 ] =45

image.png


7-C. 분자 계산


위와 같이 각 집단의 기술통계량(평균과 분산), 가중치 및 집단 전체 가중 평균을 계산하여 얻은 값으로 이제 이분산성 상태의 Data Set에 대한 집단 간 평균 차이 값을 계산하겠습니다. 구체적인 계산 과정은 아래와 같으며, 이 값은 약 187.5가 나옵니다.


image.png


7-D. 분모 보정항 계산


다음으로 분모 보정항을 계산해보겠습니다. 다시 말해 "보정된 오차 방법"을 활용하여 분산이 제각각인 각 집단에 대해 가중치와 표본의 크기에 따른 '불확실성의 차이에 일종의 패널티를 반영'하여 체계적인 오차를 도출합니다. 구체적인 계산 과정은 아래와 같으며, 이 값은 약1.075가 나옵니다.


image.png


7-E. WF-통계량 계산


WF-통계량은 187.5를 1.075로 나눈 값으로, 약 174.4 정도가 나옵니다. 즉, 집단 간의 평균적인 변동의 크기가 각 집단의 분산과 표본의 크기를 고려하여 보정한 오차 대비 174.4배 수준으로 크게 나타나고 있습니다.


7-F. 자유도 계산


분자에 대한 자유도(df1)는 (k-1)이기 때문에 2입니다. 그리고 분모에 대한 자유도(df2)는 [8/3×0.3]≒8.89 정도 나옵니다. 이와 같이 WF-통계량에서 고려되는 자유도는 정수 단위가 아닌 소수점 단위로 나타날 수 있음을 참고하시기 바랍니다.


8. Jamovi를 통한 최종 검정


우리는 계산을 통해 [WF(2,8.9)=174.4]라는 값을 얻었습니다. Jamovi를 통해 SF-검정 및 WF-검정의 결론을 비교해보겠습니다.


image.png


[One-Way ANOVA] 결과를 보면, 등분산을 가정하는 Fisher's F-검정에서는 p>0.05로 집단 간 평균의 차이가 통계적으로 유의하지 않게 나오지만 집단 간의 이분산성을 인정하고, 각 집단의 변동을 체계적으로 보정하여 계산하는 WF-검정에서는 p<.001로 집단 간의 차이가 통계적으로 유의하다는 결론을 내리고 있습니다. 여기서 집단 간의 차이는 "적어도 한 집단은 차이가 있다."라는 것에 관한 검증입니다.


[Plots]를 보면, B집단의 변동이 상당히 강하게 나타나고 있으며, A와 C집단은 평균 차이는 있으나 각 집단의 데이터가 퍼져 있는 정도가 균일하여 그래프상에서 Error Bar가 거의 나타나고 있진 않습니다. B그룹의 경우 데이터가 전체적으로 제멋대로 흩어져 있는 상태입니다. 이러한 B집단의 변동성이 A집단과 C집단의 평균 차이를 찾아내는 데 있어 얼마나 영향을 미치고 있는지에 대해 일반적인 ANOVA는 이를 제대로 파악하지 못하는 한계를 드러내고 있습니다.


[Post Hoc Tests]는 데이터의 분포가 이분산인 경우에 사용하는 사후검정 방법으로 등분산의 경우(Tukey HSD)와 달리 [Games-Howell] 검정으로 분석을 시행합니다. 사후검정 결과를 보면, 집단 간 차이가 유의한 결론에 더해 A집단과 C집단 간의 평균 차이가 통계적으로 유의(p<.001) 하다는 근거를 제공하고 있습니다.








월, 화, 수, 목, 금, 토, 일 연재