Must Learning With Statistics

분산분석 (ANOVA) 본문

통계 이론

분산분석 (ANOVA)

Doublek Park 2020. 3. 23. 01:18
6. 분산분석

분산분석은 $t$검정과 마찬가지로 차이를 보는 분석입니다. $t$검정과 다른 점은 분산분석은 두 집단은 물론이고 세 집단 이상에서도 집단 간 평균 차이를 볼 수 있는 점입니다. 두 집단에서 진행하면 $t$검정과 같은 결과를 줍니다.

ANOVA(Analysis of Variance)의 의미를 조금 풀어서 해석해보자면 다음과 같습니다.

분산(변동)을 분석하여 평균을 비교한다.정도로 해석할 수 있습니다. 보통 차이를 비교할 때, 3개 이상의 개체에 대한 동시비교는 불가능합니다. 예를 들어, 사고 싶은 제품이 3개가 있는데, 그 중 1개만 살 수 있는 상황이라면 본능적으로 3개 중에 2개를 먼저 비교하고, 그 중 선택된 1개가 나머지 1개를 비교하여 구매할 제품을 선택하는 과정과 같습니다. 분산분석은 이러한 한계점을 극복하고자 직접적으로 평균을 비교하는 것이 아닌, 분산을 이용하여 평균을 비교하는 방법입니다. 그래서 명칭도 '분산을 분석한다'의 의미로 Analysis of Variance라고 부릅니다.

예를 들어 HR 데이터 셋에서 satisfaction_level(직무 만족도) 변수를 salary(연봉 수준, Low, Mid, High 3개의 수준을 가지고 있는 순서형 변수) 변수에 따라 평균차이가 있는지 없는지 통계적으로 검정하고자 합니다. 그렇다면 연속형 변수를 3 집단 간의 평균차이를 하고자 하는 것이니, $t$검정이 아닌 분산분석을 적용해야합니다.

분산분석의 아이디어는 다음과 같습니다.

  • 먼저 전체집단의 평균($\overline{X}{\cdot\cdot}$) , 그리고 각 집단의 평균($\overline{X}{i\cdot}$)을 구합니다. 여기서 $i$는 각 집단을 의미합니다.(salary변수의 low, mid, high)

  • 임의의 데이터($X{ij}$)를 기준으로 총 변동을 계산합니다.

총 변동 : $\overline{X}{\cdot\cdot}-X{ij}$

  • 계산 된 총 변동을 집단 간(between) 변동과 집단 내(within) 변동으로 분리를 합니다.

집단 간(between) 변동 : $\overline{X}{\cdot\cdot} - \overline{X}{i\cdot}$
집단 내(within) 변동 : $\overline{X}{i\cdot}-X{ij}$

총 변동을 집단 간 및 집단 내로 분리한다는 것은 총 변동 중에 집단 간(between) 변동이 집단 내(within) 변동에 비해 얼마나 많은 부분을 차지하고 있는가를 보고자 하는 것입니다.

  • 모든 임의의 데이터($X_{ij}$)에 대해서 변동의 제곱합을 구해 줍니다.

제곱합을 구해주는 이유는 임의의 데이터($X_{ij}$) 위치에 따라서 총 변동의 값이 양수(+)가 계산 될 수가 있고 혹은 음수(-)가 계산 될 수가 있기 때문입니다. 부호간 덧셈을 하면 변동의 합이 상쇄가 되기 때문에 제곱합을 함으로써 문제를 해결해주고자 하는겁니다.

  • 계산된 제곱합을 평균제곱합으로 보정을 해준 다음, F 통계량을 구해 유의확률(p-value)을 계산합니다.

집단 간 변동이 집단 내 변동에 비해 유의한 크기를 가지고 있다면, 귀무가설을 기각할 수 있습니다.

이제부터, 분산분석의 원리와 관련된 몇 가지 키 아이디어를 말씀드리겠습니다.

  • 전체 평균을 구하는 이유는 3집단 이상의 변동을 비교하기 위한 기준선을 구하는 것입니다.

  • 분산분석의 핵심은 총 변동 중에서 집단 간(between) 변동이 집단 내(within) 변동에 비해 얼마나 큰지 비교하고자 하는 것입니다.

  • 집단 간 변동에 집중하는 이유는 분산분석에서 분석하고자 하는 것이 전체 집단의 평균과 특정 집단의 평균의 차이 즉, 다른 집단 간의 평균 차이이기 때문입니다.

  • 반대로 집단 내(within) 변동은 동일 집단 내 차이를 나타내기 때문에 집단 간 평균차이를 비교하고자 하는 분산분석에서는 Error취급을 합니다. 만약 집단 내 차이가 크면 총 변동 내에서 집단 간 차이가 차지하는 부분이 줄어들기 때문에, 총 변동이 고정된 상태에서 Error가 작다는 것은 곧 집단 간의 차이가 크다는 것으로 의미가 연결됩니다.

그럼 이제 위에서 언급한 세 가지 변동을 관찰된 데이터를 통해 추정해보도록 하겠습니다. 여기서 변동을 표현할 때 사용되는 SS는 제곱합이란 의미로 Sum of Squares를 의미합니다.

$$
총\ 변동: \ SST = \sum_{i=1}^k \sum_{j=1}^{n_i} (X_{ij}-\overline X_{\cdot \cdot})^2 \qquad\
i=집단의\ 첨자\ j= 표본의\ 첨자
$$
$SST$는 보시는바와 같이 어떤 그룹이든 신경쓰지 않고 전부 편차의 제곱합을 시켜 더합니다. $\overline X_{\cdot \cdot}$ 역시 그룹과 상관없이 모든 표본들의 전체 평균입니다. 만약 위의 예처럼 집단 변수(salary 변수)가 low, mid, high 세 그룹이라면 $k$ 는 3이 되겠고 $n_i$ 들은 low, mid, high각 집단에서의 표본 수입니다. 각 집단에서의 표본 수는 달라도 상관은 없으나 되도록 비슷한 것이 분석의 신뢰를 높여줍니다.

$$
집단 \ 간(between) 변동\ :SSG = \sum_{i=1}^k \sum_{j=1}^{n_i} (\overline X_{i\cdot} - \overline X_{\cdot \cdot })^2\ =\ \sum_{i=1}^k n_i(\overline X_{i\cdot} - \overline X_{\cdot \cdot })^2 \qquad
$$

집단 간 제곱합은 처리제곱합이라고도 많이 불립니다. 여기서 $X_{i\cdot}$ 은 $i$ 그룹의 평균입니다. 예를 들어 $\overline X _{2\cdot}$은 salary변수에서 mid에 속하는 표본만의 평균이라고 보시면 됩니다. 즉, 전체 평균과 그룹평균의 차이에 대한 제곱합이죠. 이것이 그룹의 효과입니다. $SST$가 그룹과 상관 없는 전체 변동이라면 이는 그룹들이 가지고 있는 변동인 것이죠.

$$
집단\ 내(within) 변동\ :SSE = \sum_{i=1}^k \sum_{j=1}^{n_i}(X_{ij}-\overline X_{i\cdot})^2 \qquad
$$
마지막으로 $SSE$는 그룹 내 변동을 표현하는 제곱합입니다. 형태를 보시면 개별 관찰값과 그 관측값이 속한 그룹의 그룹 평균의 차이를 이용해 제곱합을 계산하는 구조입니다.
앞에서 집단 내 변동은 보고자 하는 집단 간의 차이와는 반대되는 성향을 가지고 있는 Error라고 하였습니다. 만약 이 $SSE$가 $SSG$에 비해 상대적으로 작다면 우리는 그룹이 가지고 있는 효과가 유의하다고 판단하 것입니다.

$$
\sum_{i=1}^k \sum_{j=1}^{n_i} (X_{ij}-\overline X_{\cdot \cdot})^2\ =\ \sum_{i=1}^k n_i(\overline X_{i\cdot} - \overline X_{\cdot \cdot })^2\ +\ \sum_{i=1}^k \sum_{j=1}^{n_i}(X_{ij}-\overline X_{i\cdot})^2
$$

$$
SST\qquad \quad \quad =\quad \quad \qquad SSG \quad \quad \qquad +\quad \quad \qquad SSE
$$

만약 기본적인 가정들이 성립한다면 수리적으로 이 두 제곱합($SSG$, $SSE$)은 직교분해(orthogonal decomposition)되었다고 할 수 있습니다. 직교분해는 교차항이 없이 각 변동을 표현하는 제곱합항만으로 분해되는 것이며 그 의미는 두 제곱합이 통계적으로 독립이라는 것입니다. 그리고 이 변동의 추정치인 제곱합 역시 표본으로부터 만들어진 통계량이므로 확률분포를 갖습니다.

그럼 우리는 서로 독립적인 집단 간 제곱합과 집단 내 제곱합을 갖게 됩니다. 이 둘을 조합하여 상대적 비교가 가능한 F분포를 따르는 새로운 통계량을 얻어낼 수 있습니다. (주어진 표본들을 이용해 이 통계량을 계산한 값을 흔히 F값이라고 부릅니다)

분산분석에서의 가설검정 절차

$$
\frac {SSG/(SSG의 \ 자유도)} {SSE/(SSE의 \ 자유도) } \ \sim \ F(SSG의 \ 자유도, SSE의 \ 자유도)
$$
$SSG$와 $SSE$의 자유도 역시 예전에 했던 자유도의 논리와 크게 다르지 않습니다.

$SSG$는 K개의 그룹의 평균($\overline X_{i\cdot}$)이 제곱합을 만드는데 선택될 수 있고, 만드는 과정에서 전체 평균( $\overline X _{\cdot \cdot}$) 하나를 추정해서 사용하였으니 1개의 자유도를 잃습니다. 그래서 $SSG$의 자유도는 $K-1$이 됩니다.

$SSE$의 경우, 전체 표본 수가 (여기서는 N이라고 하겠습니다) 제곱합을 만드는데 선택될 수 있고 만드는 과정에서 $k$개의 그룹평균($\overline X_{i\cdot})$을 추정해서 사용하였으니 k개의 자유도를 잃습니다. 즉, $SSE$의 자유도는 $N-k$입니다.

분산분석의 검정통계량은 다음과 같습니다. 이 검정통계량을 가지고 유의확률(p-value)을 계산합니다.
$$
F = \frac {SSG / df_{G} } { SSE /df_{E}} \ \sim \ F(df_{G}, df_{E})
$$
$$
k= number\ of\ group, \qquad n_i= number\ of\ samples\ for\ each \ group,\qquad N = \sum_{i=1}^k n_i
$$
$$
df_{G}=k-1\qquad df_{E}=N-k
$$

이렇게 진행된 분산분석의 결과를 정리한 것을 분산분석표(Anova Table)라고 합니다. 분산분석의 결과해석은 항상 분산분석표를 이용하여 해석하니 꼭 기억해두시길 바랍니다

$$
Y_{ij} =\mu_{i} +\epsilon_{ij} \ , \ \epsilon \ \sim \ iid \ N (0,\sigma^2)
$$
$$
\Leftrightarrow \quad Y_{ij} = \mu + \alpha_{i} +\epsilon_{ij} , \ \epsilon_{ij} \sim \ iid\ N(0,\sigma^2)
$$
$$
i = 1,2, \cdots ,k \qquad (각\ 집단 )
$$
$$
j=1,2,\cdots ,ni \quad (각\ 집단에서의\ 개별\ 관찰치)
$$
$$
\alpha_{i} =\mu_{i} -\mu \quad (각\ 집단의\ 효과)
$$

여기서 각 집단의 효과 $\alpha_{i}$ 는 각 집단의 평균과 전체평균의 차이입니다. 우리가 위에서 변동을 이야기하면서 사용했던 $\overline X{i\cdot} - \overline X {\cdot \cdot}$ 이 추정하려는 것이 바로 이 각 집단의 효과 $\alpha_{i}$ 라고 할 수 있습니다. 또한 $iid$란 independent and identically distributed의 줄임말로, 어떤 확률변수가 독립적이며 동일한 분포를 보인다는 의미입니다. 위 모형에서는 오차항 $\epsilon$이 독립적으로 평균이 0이고 분산이 $\sigma^2$ 인 정규분포를 따른다는 것으로 해석할 수 있습니다.

귀무가설이 기각이 되었을 때, 즉 평균이 같지 않을 경우

분산분석에서 대립가설의 뜻은 '모든 집단별 평균은 같지 않다' 가 아닌 '적어도 하나의 집단 평균은 다르다' 이라는 점입니다. $K-1$개의 집단별 평균이 같다고해도 하나만 유의하게 다르다면 귀무가설은 기각될 것입니다. 이는 분산분석이 가지고있는 구조적 한계입니다. 지금까지 언급했던 검정 원리를 보아도 아노바는 집단 간 변동의 총합을 이용한 검정을 하고, 그 말은 특정 집단의 개별 효과를 전혀 확인할 수 없다는 뜻입니다. 다시 말해서 귀무가설이 기각되었을 때, 검정의 결과를 보면 각 집단별 평균이 다르다는 것은 알 수 있지만 어떤 집단이 얼만큼 큰지는 알 수 없다는 것이죠. 그래서 이 경우 대게 사후검정(post hoc test)라 부르는 집단별 비교 검정을 진행하게 됩니다. 원리는 아주 간단합니다.

위의 예에서 low, mid, high 세 집단의 효과가 같은지에 대한 분산분석 결과 귀무가설이 기각되어 세 집단의 효과가 모두 같지는 않다는 결과를 얻었다면 사후검정으로 (low-medium), (low-high), (medium-high) 이렇게 두개씩 비교하면서 개별 비교를 하는 것입니다. 그 분석 방법으로는 위에서 배운 독립 $t$검정을 이용할 수도 있겠고 같은 원리를 공유하는 Duncan이나 Scheffe라고 불리는 개별 비교법을 이용할 수도 있습니다.

'통계 이론' 카테고리의 다른 글

상관분석  (0) 2020.03.23
분산분석(R Code)  (0) 2020.03.23
t검정(R Code)  (1) 2020.03.23
t검정  (0) 2020.03.22
가설검정  (0) 2020.03.22
Comments