Statistics: ch5. 분산분석(ANOVA)

독립표본 t-test은 두 집단간 평균을 비교하는데 사용된다. 이를 확장하여 세 개 이상의 집단들에 대한 ‘평균’을 비교하기 위해서 분산분석(analysis of variance: ANOVA)방법을 사용한다. 분산분석은 실험계획법(Experimental Design)에서 많이 사용하는 분석방법으로써 이름이 뜻하는 대로 특성값의 분산 또는 산포를 분석하는 방법이다. 즉, 특성값의 산포를 제곱합(sum of squares)으로 나타내고, 이 제곱합을 실험에 관련된 요인별로 분해하며, 순수한 오차에 의한 영향보다 큰 영향을 주는 요인이 어떤 것인가를 규명하는 분석방법이다.

이때, 실험계획에서는 비교하는 집단을 나누기 위한 집단변수의 범주를 처리(treatment) 혹은 요인수준(factor level, 인자수준)이라고 하고, 집단변수를 요인(factor, 인자)이라고 부른다.

The goal of ANOVA is to determine the effects of discrete independent variables(groups,levels) on a continuous dependent variable.

1. 실험연구 개념

반복: 각 집단(or 처리)의 표본 수

2. 분산분석 개념

ANOVA의 세 가지 가정

  • Independence: 샘플 데이터는 모집단에서 각각 독립적으로 추출됐다.
  • Normality: residuals(모델에 fitting하고 unexplained variance)는 정규분포를 따른다.
  • Homogeneity of variance (a.k.a. Heteroscedasticity): 각 셀마다 분산은 대략적으로 같다. 셀이라는건 아래 예시 테이블의 한 칸을 말한다. factor별, level별로 나눠진 셀들이 모두 같은 분산을 갖고 있다는 뜻이다.

Medication이라는 하나의 Factor의 level이 A, B, Placebo 3가지 있다면 아래와 같이 정리 가능하다. | Levels | A | B | Placebo | |—-|:—-:|:—-:|:—-:| | samples |20|20|20|

Medication과 Age group이라는 두 개의 Factor가 각각의 levels을 가질 때는 아래와 같이 정리 가능하다. | - | A | B | Placebo | |—-|:—-:|:—-:|:—-:| |Younger|20|20|20| |Older|20|20|20|

분산분석의 4 steps

  1. 실험계획을 살펴보고 ANOVA분석이 적절한지 확인한다.
  2. 독립변수와 종속변수를 정한다.
  3. 가능하면 factors와 levels의 ANOVA Table을 만든다.
  4. 모델을 계산하고 결과를 해석한다.

여러가지 effects

분산을 통해서 영향을 주는 요인을 구분짓는 분석이 ANOVA이다. 여러가지 영향(effects)이 있다

  • Fixed effects: The number of levels of a factor is fixed.
  • Random effects: The factor is random in the population.
  • Mixed effects: Both fixed and random factors

mixed-effects ANOVA는 예를 들어 주관적인 행복감을 집 유형(fixed effects)와 연령(random factor)에 의해서 영향받는지 여부를 조사하는 분석이다.

3. 분산분석 분류

집단을 나눠주는 요인의 수 기준으로 분산분석을 나눈다.

  • 요인의 수가 하나이면 일원배치 분산분석(one-way ANOVA)
  • 요인의 수가 두 개이면 이원배치 분산분석(two-way ANOVA)

반복 수가 같은지 여부에 따라서 분산분석을 나눈다.

  • 반복수가 같은 경우 Balanced ANOVA 예를 들어, Age group이란 factor에 level이 younger, older있고, Medication이라는 factor에 A, B, Placebo가 있을 때 아래 표와 같이 모든 셀에 데이터 포인트, 즉 반복수가 같으면 Balanced한 경우다.
- A B Placebo
Younger 20 20 20
Older 20 20 20
  • 반복수가 다른 경우 Unbalanced ANOVA 반면, 셀마다 데이터 포인트가 다르면, Unbalanced한 경우이다.
- A B Placebo
Younger 20 23 21
Older 18 20 20

적어도 하나의 factor가 같은 individual로부터 multiple measurements를 한다면 그건 Repeated-measures ANOVA(rmANOVA)라고 한다.

일원분류 분산분석(one-way ANOVA)

일원배치 분산분석을 하기 위해서는 요인의 각 수준에서 자료의 모집단은 동일한 분산을 가지는 정규분포를 가정한다. 따라서 분산분석을 실행하기 전에 이 가정들이 만족되는지 검토하는 것이 좋다.

  • 요인의 각 수준에서 표본이 대표본인 경우: 정규성의 검토 없이 분산분석이 가능
  • 요인의 각 수준에서 표본이 소표본인 경우: 정규성 검토가 필요
    • 정규성 가정을 만족하지 않는 경우: 비모수적인 방법인 Kruskal-Wallis 방법을 사용

Sum of squares

ANOVA에서의 귀무가설과 대립가설부터 살펴본다.

  • $H_O: \mu_1=\mu_2=\cdots=\mu_k$ 귀무가설은 ‘각 그룹들(위에서 본 테이블의 각 cell)의 평균들이 다 같다’
  • $H_A: \mu_i\ne\mu_j$ 대립가설은 ‘적어도 한 그룹의 평균이 하나 이상의 다른 그룹의 평균과 다르다’
\[SS=\sum_{i=1}^{n} (x_i-\bar{x})^2\] \[\sigma^2=\frac{1}{n-1} \sum_{i=1}^{n} (x_i-\bar{x})^2\]

sum of squares(SS)는 사실상 variance 공식과 같다. 다만 $\frac{1}{n-1}$이 없는건 각 셀마다 SS의 비율이 중요하기 때문이다.

ANOVA는 이 SS를 구분짓는 작업이다.

Total SS = Within-group SS(a.k.a. Error SS) + Between-group SS

하나의 셀 내에서의 variation을 Within-group SS라고 하고 모든 셀의 모든 sample의 total variation을 between-group SS라고 한다.

ANOVA는 F-검정으로 가설검정을 하는데 이때 필요한게 F-통계량이다. F-통계량은 두 분산의 비율이다. \(\textrm{F}=\frac{\textrm{Explained\ variance}}{\textrm{Unexplained\ variance}}=\frac{\textrm{Due\ to\ factors}}{\textrm{Natural\ variation}}\)

F는 항상 양수이고 우리는 이 값이 크길 원한다. ⇒ statistically significant

다시 SS를 구분짓는 작업으로 돌아가서, Total SS, Between-group SS, Within-group SS를 아래 수식처럼 표현한다. 일단 factor가 1개이고 levels가 여러개인 경우라고 보자.

\[SS_{\textrm{Total}}=\sum_{j=1}^{\textrm{levels}}\sum_{i=1}^{\textrm{individuals}} (x_{ij}-\bar{x})^2\] \[SS_{\textrm{Between}}=\sum_{j=1}^{\textrm{levels}} (\bar{x}_{j}-\bar{x})^2n_j\] \[SS_{\textrm{Within}}=\sum_{j=1}^{\textrm{levels}}\sum_{i=1}^{\textrm{individuals}} (x_{ij}-\bar{x}_j)^2\]
  • $\textrm{levels}$: 여기서는 factor가 하나라고 가정했으니 levels의 개수는 그룹의 개수이다. $j$가 몇 번째 그룹인지 나타낸다.
  • $\textrm{individuals}$: 한 그룹 내 데이터 포인트
  • $n_j$ 한 그룹 내 individual의 개수
  • $\bar{x}$: 모든 데이터의 평균
  • $\bar{x}_j$: 하나의 그룹(셀) 안에서의 평균

여기서 헷갈릴만한게 $SS_{\textrm{Between}}$ 에서 한 그룹 내에서 $\bar{x}j$과 $\bar{x}$은 모든 individual한테 똑같다. 그래서 individual variability가 없어서 $\sum{i=1}^{\textrm{individuals}}$를 안쓰고 단순히 $j$번째 그룹의 데이터 개수인 $n_j$를 곱했다.

세 SS의 degree of freedom(df)는 다음과 같다. \(df_{\textrm{Total}}=N-1\)

\[df_{\textrm{Between}}=k-1\] \[df_{\textrm{Within}}=N-k\]
  • $N$: 모든 데이터 수
  • $k$: level의 개수(그룹 개수)

여기서도 $df_{\textrm{Between}}$의 경우에 왜 $N$이 없냐면 그룹 내 데이터 포인터에 대해서 똑같은 $\bar{x}_j$를 갖기 때문이다. No change -> No degree of freedom

F-test

본격적인 F-검정을 위하여 계산한 sum of squares와 degree of freedom을 이용해서 Mean of Squares(MS)를 구하자.

\[\textrm{MS}_\textrm{Between} = \frac{\textrm{SS}_\textrm{Between}}{df_\textrm{Between}} = \frac{\sum_{j=1}^{\textrm{levels}} (\bar{x}_{j}-\bar{x})^2n_j}{k-1}\] \[\textrm{MS}_\textrm{Within} = \frac{\textrm{SS}_\textrm{Within}}{df_\textrm{Within}} = \frac{\sum_{j=1}^{\textrm{levels}}\sum_{i=1}^{\textrm{individuals}} (x_{ij}-\bar{x}_j)^2}{N-k}\] \[F_{k-1,N-k}=\frac{\textrm{MS}_\textrm{Between}}{\textrm{MS}_\textrm{Within}}\]

$F$-통계량은 2가지 degree of freedome이 있다. 하나는 MS_between의 분모인 $k-1$이고 다른 하나는 MS_within의 분모인 $N-k$이다.

ANOVA table

| Source of variance | SS | df | MS | F | P-value | | :—-: | :—-: | :—-: | :—-: | :—-: | :—-: | | Between groups | $SS_B$ | $k-1$ | $MS_B$ | $MS_b/MS_W$ | $p$ | | Within groups | $SS_W$ | $N-k$ | $MS_W$ | | | | Total | $SS_T$ | $N-1$ | | | |

이게 ANOVA Table이다.

계산한 p-value로는 어떤 그룹끼리 차이가 있는지 알 수 없다. ANOVA로는 다른게 있을 수 있다는 점만 알 수 있다. 어떤 그룹끼리 다른지 알아보려면 추가적으로 t-test를 해야한다. (=post-hoc comparison)

하지만, pairwise t-tests를 하면 multiple comparison problem이 발생한다. 그리고 같은 실험에서 진행됐기 때문에 모든 그룹이 서로 independent하지 않다는 문제가 발생한다.

이 문제는 일반적으로 Tukey test로 해결한다. 새로운 통계량 $q$가 등장한다. \(q=\frac{\bar{x}_b-\bar{x}_s}{\sqrt{MS_{\textrm{Within}}}\sqrt{2/n}}\)

두 개의 그룹(그룹$b$, 그룹$s$)을 비교할 때, 비교가 6번($_4C_2$) 이뤄 진다고 예를 들면 $q$값도 6개이다.

  • $\bar{x}_b$ : condition b에서의 평균
  • $\bar{x}_s$ : condition s에서의 평균
  • $\sqrt{MS_{within}}$ : variance와 관련
  • $\sqrt{2/n}$ : sample size와 관련
  • $q$는 $j,n-j$의 df를 갖는다.
    • $j$: 가능한한 모든 비교개수(6개)가 아니라 실질적으로 비교하고자 하는 비교개수(여기선 4개).
    • $n$: 모든 데이터 포인트의 개수

tukey test는 t-test와 다르지만 개념적으로 유사한 방법이다.

주의할점은 ANOVA에서 post-hoc comparisons는 F-test가 유의미할때만 가능하다. F-test가 유의미하지 않을 때에는 post-hoc comparisons가 의미없다.

Balanced: 반복수가 같은 경우 (집단 간 동일한 표본크기)

처리효과(treatment effect) = 주효과(main effect)

Unbalanced: 반복수가 다른 경우 (집단 간 상이한 표본크기)

이원분류 분산분석(two-way ANOVA)

요인이 두 개인 경우의 분산분석을 이원배치 분산분석이라 하고 요인이 두 개 이상인 경우는 분산분석을 통하여 각 요인들의 평균 비교와 두 요인 이상의 결합평균 비교(상호작용 파악)를 할 수 있다.

Two-way ANOVA

To total variation in the dataset is the sum of the variation across individuals within each group AND the variation across the different levels within each factor AND the variation at the interation between the factors

Two-way ANOVA는 One-way ANOVA에서 더 나아가 factor들 사이의 interaction의 변동성까지 고려한 분석이다.

Factor가 Medication과 Age group 두 가지 있고 각각의 Levels가 있으면 아래와 같이 정리 가능하다. | - | A | B | Placebo | |—-|:—-:|:—-:|:—-:| |Younger|20|20|20| |Older|20|20|20|

Factor가 A,B인 2개인 Two-way ANOVA의 SS는 아래와 같이 계산한다.

\[SS_{\textrm{Total}}=\sum_{k=1}^{\textrm{levels B}}\sum_{j=1}^{\textrm{levels A}}\sum_{i=1}^{\textrm{individuals}} (x_{ijk}-\bar{x})^2\] \[SS_{\textrm{Between A}}=bn\sum_{j=1}^{\textrm{levels A}} (\bar{x}_{j}-\bar{x})^2\] \[SS_{\textrm{Between B}}=an\sum_{k=1}^{\textrm{levels}} (\bar{x}_{k}-\bar{x})^2\] \[SS_{A\times B}=\sum_{k=1}^{\textrm{levels B}}\sum_{j=1}^{\textrm{levels A}} (x_{jk}-\bar{x}_j-\bar{x}_k-\bar{x})^2\] \[SS_{\textrm{Within}}=\sum_{k=1}^{\textrm{levels B}}\sum_{j=1}^{\textrm{levels A}}\sum_{i=1}^{\textrm{individuals}} (x_{ijk}-\bar{x}_{jk})^2\]
  • $SS_{\textrm{Total}}$, $SS_{\textrm{Between A}}$, $SS_{\textrm{Between B}}$, $SS_{\textrm{Within}}$는 one-way ANOVA와 같다. (다만 $SS_{\textrm{Between A}}$, $SS_{\textrm{Between B}}$는 $a,b$ term이 추가됐다.)
  • $SS_{A\times B}$는 two-way ANOVA에만 있는 term이다.

각 SS의 degree of freedom(df)는 다음과 같다.

\[df_{\textrm{Total}}=N-1\] \[df_{\textrm{Between A}}=a-1\] \[df_{\textrm{Between B}}=b-1\] \[df_{A\times B}=(a-1)(b-1)\] \[df_{\textrm{Within}}=N-ab\]
  • $a$: A요소의 데이터 개수
  • $b$: B요소의 데이터 개수

ANOVA table

| Source of variance | SS | df | MS | F | P-value | | :—-: | :—-: | :—-: | :—-: | :—-: | :—-: | | Factor A | $SS_A$ | $a-1$ | $MS_A$ | $MS_A/MS_W$ | $p$ | | Factor B | $SS_B$ | $b-1$ | $MS_B$ | $MS_b/MS_W$ | $p$ | | $A\times B$ interact | $SS_{A\times B}$ | $(a-1)(b-1)$ | $MS_{A\times B}$ | $MS_{A\times B}/MS_W$ | $p$ | | Within(errors) | $SS_W$ | $N-ab$ | $MS_W$ | | | | Total | $SS_T$ | $N-1$ | | | |

one-way ANOVA와 마찬가지로 마찬가지로 two-way ANOVA를 한 다음에 p값이 유의미하게 나오면, 어떤 그룹끼리 차이가나는지 확인하기 위해서 follow-up -t-test를 한다.

반복이 없는 경우

반복이 있는 경우

교호작용(interaction): 인자수준의 조합에서 생기는 효과. 인자 A의 효과가 인자 B의 수준의 변화에 따라 변하는 모형에서 이 교호작용이 존재한다.

4. 공분산분석(ANCOVA)

공분산분석은 Analysis of Covariance 로서 흔히 ANCOVA라고 부른다. 자료 형태는 일원배치 분석분석과 비슷하지만 공변량이라는 변수가 추가된 것만 다르다.

5. Dummy-coding

Dummy-coding: categorical 변수를 숫자로 변환하는 작업이다. 2개의 category를 숫자 {0,1}로 변환하는게 제일 좋다. 대표적인게 남녀 성별.

“1”이라는 변수가 “0”이라는 변수에 비하여 얼마나 변했는지를 factor의 effect가 보여줌으로써 해석해볼 수 있다.(“0” 변수가 마치 baseline처럼)

6. MANOVA(multivariate ANOVA)

보통 ANOVA는 종속변수가 1개이고 독립변수는 여러개이다.

MANOVA(multivariate ANOVA)는 종속변수도 여러개이고 독립변수도 여러개이다.

업데이트:

댓글남기기