분산분석

한상우·2024년 9월 17일

기초 통계학

목록 보기
10/15

분산분석

  • 분산분석 (ANOVA) : 3개 이상의 모집단 평균이 서로 같은지 여부를 검증할 수 있는 통계적 분석 방법. 주어진 유의 수준에서 모집단 간 평균 차이가 우연에 의해 발생했는지, 아니면 실질적인 차이가 있는지를 평가할 수 있다

    • 요인 (factor) : 실험이나 관찰에서 조작하거나 분류하는 변수 (=독립변수)
    • 수준 (level) : 각 요인의 카테고리나 상태를 나타낸다 (=범주)
  • 분산분석의 기본 가정

    • 정규성 : 각 집단에 해당되는 모집단의 분포가 정규분포이다
    • 등분산성 : 각 집단에 해당되는 모집단의 분산은 같다
    • 독립성 : 각 모집단 내에서의 오차와 모집단 간의 오차는 서로 독립이다

일원분산분석

  • 일원분산분석 (one-way ANOVA) : 하나의 요인이 여러 개의 수준으로 나누어져 있고, 각 수준에 해당되는 집단마다 여러 관찰값들이 포함되어 있는 경우, 수준별 평균의 차이를 분석한다.

    • 예시 귀무가설 : H0:μ1=μ2=μ3H_0 : \mu_1 = \mu_2 = \mu_3

    • 관찰값 XijX_{ij} : j번째 집단의 i번째 관찰값

    • 관찰값의 모형은 아래와 같이 표현할 수 있다
      Xij=μ+αj+ϵijX_{ij} = \mu + \alpha_j + \epsilon_{ij}

      • μ\mu : 전체 평균
      • αj\alpha_j : j번째 집단의 영향 (수준에 따른 전체 평균과의 차이)
      • ϵij\epsilon_{ij} : j번째 집단에 있는 관찰값 i의 우연적 오차 (i번째 관찰값의 개별 오차)
    • 관찰값의 모형을 표본 통계량으로 표현하면 아래와 같다

      Xij=Xˉ+(XˉjXˉ)+(XijXˉj)X_{ij} = \bar X + (\bar X_j-\bar X) + (X_{ij}-\bar X_j)

      • Xˉ\bar X : 전체 표본 평균
      • (XˉjXˉ)(\bar X_j-\bar X) : 수준에 따른 전체 표본 평균과의 차이
      • (XijXˉj)(X_{ij}-\bar X_j) : 각 관찰값과 소속 집단의 평균과의 차이
    • Xˉ\bar X를 좌변으로 옮긴 후 양변에 제곱을 취하여 전체 관찰 수만큼 합하면 변동성을 분해할 수 있다

      (XijXˉ)2=(XˉjXˉ)2+(XijXˉj)2\sum\sum(X_{ij}-\bar X)^2=\sum\sum(\bar X_j-\bar X)^2+\sum\sum(X_{ij}-\bar X_j)^2

      • 총제곱합 (total sum of squares, SST) : 전체 변동성

        (XijXˉ)2\sum\sum(X_{ij}-\bar X)^2

      • 집단 간 제곱합 (sum of squares between gropus, SSB) : 요인에 의해 설명되는 변동성

        (XˉjXˉ)2\sum\sum(\bar X_j-\bar X)^2

      • 집단 내 제곱합 (sum of suares within group, SSW) : 요인에 의해 설명되지 않는, 각 집단 내 개별 관찰값의 우연적 오차

        (XijXˉj)2\sum\sum(X_{ij}-\bar X_j)^2

    • SSB와 SSW를 자유도로 나눠주어 변동성의 정도에 대해 표준화된 수치를 구할 수 있다. 이때, 표준화된 변동성은 분산과 같은 의미를 갖게된다

      • 집단 간 평균 제곱합 : MSB=SSBJ1MSB = {SSB\over {J-1}}
      • 집단 내 평균 제곱합 : MSW=SSWNJMSW = {SSW\over {N-J}}

  • 일원분산분석과 F분포와의 연관성

    • 집단 간 분산(MSB)이 집단 내 분산(MSW)에 비해 그 비율이 크다면, 집단에 따른 차이가 크다는 것을 의미한다

    • 분산분석의 가정에 의해 모집단이 정규분포이다. 이때, 표본 분산의 표집분포(MSB와 MSW)는 카이제곱 분포를 따른다.

    • 두 개의 독립적인 카이제곱 분포를 따르는 확률변수의 비율을 모델링하는 분포가 F분포이다. 따라서, F-검정을 통해 집단에 따른 차이가 통계적으로 유의미한지 확인할 수 있다.

    • 이때, 검정통계량(F값)은 다음과 같다

      FJ1,NJ=MSBMSWF_{J-1, N-J} = {MSB\over MSW}


  • 분산분석표 (ANOVA table)

    분산원제곱합자유도평균제곱F값
    집단 간SSBJ-1MSBMSB / MSW
    집단 내(오차)SSW(SSE)N-JMSW(MSE)-
    합계SSTN-1--

  • 관계에 대한 설명력 : F값이 유의하다는 것은 집단 간의 차이가 오차의 정도를 넘어설 만큼 크다는 것을 의미한다. 이때, 집단 간 차이 때문에 생기는 변동성(독립변수의 영향)이 전체 변동성(종속변수)을 얼마나 설명하는지 알기 위해 에타 제곱을 사용한다.

  • 에타 제곱(상관비, correlation ratio) : 분산분석에서 요인에 의해 설명될 수 있는 변동성과 총 변동성 간의 비율. 각 요인의 상대적 중요성을 파악할 수 있다.

    η2=SSBSST\eta^2 = {SSB\over SST}


이원분산분석

  • 이원분산분석 (two-way ANOVA) : 두 요인이 각각 여러 개의 수준으로 나누어져 있을 경우 요인별 평균의 차이(주효과) 및 두 요인의 상호작용효과를 분석한다.

  • 상호작용효과 (interaction effect) : 한 요인의 효과가 다른 요인의 수준에 따라 달라지는 현상. 즉, 두 요인이 독립적으로 종속 변수에 영향을 미치는 것이 아니라, 두 요인이 함께 작용할 때 그 효과가 달라질 수 있는 효과를 의미한다.

    • 상호작용 효과가 유의미한 경우 : 단순히 요인 A와 B의 주효과를 더하는 것이 아니라 그 이상의 효과가 존재함을 의미한다.

    • 상호작용이 없는 경우 : 각 요인의 주효과는 서로 독립적이며 한 요인의 효과는 다른 요인의 수준에 상관없이 일정하다.

    • 공분산, 상관계수와의 차이점 : 공분산은 두 연속형 변수 간의 단순한 관계를 나타내지만, 상호작용 효과는 요인이 여러 수준으로 나뉘어 있을 때, 각 수준이 종속 변수에 미치는 영향을 평가하는 데 사용한다.


  • 상호작용효과 확인

    • 시각화 (interaction plot) : 분할표(contingency table)를 사용하여 interaction plot을 만든다

      • 상호작용 효과가 없는 경우

      • 상호작용 효과가 있는 경우

    • 상호작용이 없다고 판단된 경우에는 복잡한 이원분산분석 대신 일원분산분석을 사용하여 각 요인의 주효과만 확인하는 것이 적절하다.


  • 이원분산분석의 전개과정 : 두 요인을 각자 A, B라고 하자. 이때, A의 수준을 J, B의 수준을 K로 표현한다.

    • 관찰값 XijkX_{ijk} : 요인 A의 j번째 수준과 요인 B의 k번째 수준에 해당되는 집단에서 i번째 관찰값. 각 집단의 관찰값 개수를 n인 경우 전체 관찰값의 개수 N은 JKn과 같다.

    • 자유도 : N1=JKn1=(J1)+(K1)+(J1)(K1)+JK(n1)N-1=JKn-1 = (J-1)+(K-1)+(J-1)(K-1)+JK(n-1)

      • J1J-1 : 요인 A의 자유도
      • K1K-1 : 요인 B의 자유도
      • (J1)(K1)(J-1)(K-1) : 상호작용 효과의 자유도
      • JK(n1)JK(n-1) : 집단 내 자유도
    • 관찰값의 모형은 아래와 같이 표현할 수 있다
      Xijk=μ+αj+βk+(αβ)jk+ϵijkX_{ijk} = \mu + \alpha_j +\beta_k + (\alpha\beta)_{jk} + \epsilon_{ijk}

      • μ\mu : 전체 평균
      • αj\alpha_j : A의 주효과
      • βk\beta_k : B의 주효과
      • (αβ)jk(\alpha\beta)_{jk} : 상호작용효과
      • ϵijk\epsilon_{ijk} : i번째 관찰값의 개별 오차
    • 관찰값의 모형을 표본 통계량으로 표현하면 아래와 같다

      Xijk=Xˉ+(XˉjXˉ)+(XˉkXˉ)+(XˉjkXˉjXˉk+Xˉ)+(XijkXˉjk)X_{ijk} = \bar X + (\bar X_j-\bar X) + (\bar X_k-\bar X) + (\bar X_{jk}-\bar X_j - \bar X_k + \bar X) + (X_{ijk}-\bar X_{jk})

    • Xˉ\bar X를 좌변으로 옮긴 후 양변에 제곱을 취하여 전체 관찰 수만큼 합하면 변동성을 분해할 수 있다

      SST=SSA+SSB+SSAB+SSWSST = SSA + SSB + SSAB + SSW

      • SST(전체 변동성) = (XijkXˉ)2=Xijk2(Xijk)2JKn\sum\sum\sum(X_{ijk} - \bar X)^2 = \sum\sum\sum X_{ijk}^2-{(\sum\sum\sum X_{ijk})^2\over JKn}

      • SSA(A의 변동성) = (XˉjXˉ)2=Kn(XˉjXˉ)2\sum\sum\sum (\bar X_j-\bar X)^2 = \sum Kn(\bar X_j - \bar X)^2

      • SSB(B의 변동성) = (XˉkXˉ)2=Jn(XˉkXˉ)2\sum\sum\sum (\bar X_k-\bar X)^2 = \sum Jn(\bar X_k - \bar X)^2

      • SSAB(상호작용의 변동성) = n(XˉjkXˉjXˉk+Xˉ)2\sum\sum n(\bar X_{jk}-\bar X_j - \bar X_k + \bar X)^2

      • SSW(개별 관측값의 변동성) = (XˉijkXˉjk)2\sum\sum\sum (\bar X_{ijk}-\bar X_{jk})^2

    • 변동성을 자유도로 나누어 평균제곱을 구할 수 있으며, 평균제곱은 분산과 같은 의미를 갖는다.

      • MSA = SSA(J1)SSA \over (J-1)

      • MSB = SSB(K1)SSB \over (K-1)

      • MSAB = SSAB(J1)(K1)SSAB \over (J-1)(K-1)

      • MSW = SSWJK(n1)SSW \over JK(n-1)


  • 이원분산분석표 (two-way ANOVA table) :

    분산원제곱합자유도평균제곱F값
    A 효과SSAJ-1SSB / (J-1)MSA / MSW
    B 효과SSBK-1SSB / (K-1)MSB / MSW
    상호작용 효과SSAB(J-1)(K-1)SSAB / (J-1)(K-1)MSAB / MSW
    집단 내(오차)SSWN-JKSSW / JK(n-1)-
    합계SSTN-1--
  • F-검정을 사용하여 [A의 주효과, B의 주효과, 상호작용 효과]가 각각 종속 변수에 미치는 영향이 통계적으로 유의미한지 판단할 수 있다.


  • 관계에 대한 설명력 평가 : 총 네가지 에타 제곱을 확인할 수 있다.

    • 요인 A의 주효과 : ηA2=SSASST\eta_A^2 = {SSA\over SST}

    • 요인 B의 주효과 : ηB2=SSBSST\eta_B^2 = {SSB\over SST}

    • 상호작용효과 : ηAB2=SSABSST\eta_{AB}^2 = {SSAB\over SST}

    • 모든 효과 : η2=SSA+SSB+SSABSST\eta^2 = {SSA+SSB+SSAB\over SST}

사후검정

  • 사후검정 (post hoc test) : 귀무가설이 기각되었을 경우(J개의 집단에 따라 평균의 차이가 통계적으로 유의미한 경우) 모든 집단 간에 차이가 있을 수도 있지만, 특정 집단 간에만 차이가 있을 수 있다. 어느 집단들 간에 차이가 있는지 알기 위해서는 사후검정을 진행해야 한다.

일원분산분석

  • scipy.stats에서 사용 가능한 사후검정은 아래와 같다.

    • Turkey 검정 : 가능한 모든 조합의 평균을 비교한다

      • 양측/단측 검정 : 양측검정만 가능하다

      • 한계점 : 샘플 사이즈가 균일해야 사용 가능하다

    • Dunnett 검정 : 하나의 기준 집단(control group)과 다른 집단들의 평균을 비교한다.

      • 양측/단측 검정 : 양측/단측 모두 사용 가능하다.
      • 한계점 : Family-Wise Error Rate (FWER)를 통제하기 위해 설계되었다. FWER은 여러 비교를 할 때 잘못된 귀무가설을 기각할 확률이 증가하는 문제로, Dunnett 검정은 이를 억제하기 위해 보수적으로 작동하여 검정력이 낮아질 수 있다.
  • scipy.stats에는 없지만 보편적으로 사용하는 사후검정은 아래와 같다.

사후검정특징장점단점
Fisher's LSD각 그룹 간 평균을 개별적으로 t-검정을 수행하여 비교하는 방법검정력이 높아 실제 차이를 잘 탐지할 수 있음다중 비교 시 오류율(FWER)을 통제하지 않기 때문에 Type I 오류가 증가할 수 있음
Bonferroni유의 수준을 비교의 수로 나누어 모든 쌍의 평균을 비교함FWER을 효과적으로 통제하여 신뢰성이 높음보수적인 접근법으로 인해 검정력이 낮아질 수 있음
SchefféANOVA 기반으로 모든 가능한 선형 조합을 비교하며, 다중 비교에 매우 보수적임가장 보수적인 사후검정으로, 어떤 비교에서도 FWER을 잘 통제검정력이 매우 낮아 실제 차이가 있어도 발견하기 어려울 수 있음
Games-Howell등분산성을 가정하지 않으며, 모든 그룹 간 평균 차이를 비교하는 비모수적 방법등분산성 가정이 위배된 경우에도 사용 가능, 비교적 높은 검정력복잡한 계산이 필요하며, 큰 샘플 크기가 요구될 수 있음
Tamhane T2등분산성을 가정하지 않으며, 비모수적 방법으로 그룹 간 평균을 비교FWER을 잘 통제하며, 등분산성 가정이 위배된 경우에도 사용 가능매우 보수적이며, 따라서 실제 차이가 있어도 검정력을 잃을 수 있음
Dunnett T3등분산성을 가정하지 않으며, 각 그룹을 대조군과 비교하여 FWER을 통제보수적이면서도 검정력을 유지하여, 특정 비교에 유리모든 비교가 아닌 대조군과의 비교만 수행하므로 특정 상황에서만 적합할 수 있음

이원분산분석

  • 일원분산분석에서는 위에서 작성한 모든 사후검정을 사용할 수 있지만, 이원분산분석(혹은 다원분산분석)의 경우는 요인 간의 상호작용을 평가할 수 있는 사후검정을 진행해야 한다.

    • Tukey: 특정 요인 간의 모든 가능한 조합을 비교하는 데 유용하며, 다원 ANOVA에서도 사용 가능하지만, 상호작용에 대한 해석이 복잡할 수 있다.
    • Bonferroni: 여러 요인 및 상호작용이 있는 경우에도 사용할 수 있지만, 보수적이기 때문에 검정력이 떨어질 수 있다.
    • Scheffé: 복잡한 비교를 수행할 때 유용하며, 다원 ANOVA에서도 사용 가능하지만, 역시 매우 보수적이다.
    • Dunnett: 주로 대조군과의 비교에 초점이 맞춰져 있으며, 다원 ANOVA에서 특정 요인에 대해 대조군과의 비교가 필요한 경우에 적합하다.
profile
개인 공부용 블로그입니다

0개의 댓글