이원 분산 분석

코딩다시시작·2024년 10월 30일

빅데이터분석

목록 보기
12/19

개념

  • 이원 분산 분석(이원 ANOVA)은 두 개의 독립 변수가 종속 변수에 미치는 영향을 동시에 분석하는 통계 방법
  • 주효과와 상호작용 효과를 평가하여 각 요인이 개별적으로 또는 상호작용하여 종속 변수에 영향을 미치는지를 분석

1. 이원 분산 분석의 목적

두 개의 독립 변수 AABB가 종속 변수 YY에 미치는 영향을 다음과 같은 방식으로 평가:

  • 주효과: 각각의 독립 변수 AABB가 종속 변수에 미치는 개별적인 효과.
  • 상호작용 효과: 독립 변수 AABB의 결합 효과가 종속 변수에 미치는 영향. 즉, AA의 효과가 BB의 값에 따라 달라지는지 여부.

2. 수식적 표현

이원 분산 분석 모형:

Yijk=μ+αi+βj+(αβ)ij+ϵijkY_{ijk} = \mu + \alpha_i + \beta_j + (\alpha\beta)_{ij} + \epsilon_{ijk}
  • YijkY_{ijk}: 종속 변수 YY의 관측값 (즉, 특정 조건 하에서의 측정값).
  • μ\mu: 전체 평균(종속 변수의 전체 평균값).
  • αi\alpha_i: 독립 변수 AAii번째 수준의 주효과.
  • βj\beta_j: 독립 변수 BBjj번째 수준의 주효과.
  • (αβ)ij(\alpha\beta)_{ij}: 독립 변수 AABB 사이의 상호작용 효과.
  • ϵijk\epsilon_{ijk}: 잔차(오차), 정규 분포를 따르며 N(0,σ2)N(0, \sigma^2)로 가정.

3. 이원 분산 분석의 단계

1) 총 변동(총 제곱합):

총 변동(SST, Sum of Squares Total)은 종속 변수의 관측값과 전체 평균 사이의 차이:

SST=i=1aj=1bk=1nij(YijkYˉ..)2SST = \sum_{i=1}^{a} \sum_{j=1}^{b} \sum_{k=1}^{n_{ij}} (Y_{ijk} - \bar{Y}_{..})^2
  • aa: 독립 변수 AA의 수준 수.
  • bb: 독립 변수 BB의 수준 수.
  • nijn_{ij}): 각 수준에서의 샘플 크기.
  • Yˉ..\bar{Y}_{..}: 종속 변수 YY의 전체 평균.

2) 각 요인의 변동:

각 요인의 변동(즉, 독립 변수 AABB)

  • 요인 A의 제곱합 (SSA):

    SSA=nbi=1a(Yˉi.Yˉ..)2SSA = n_b \sum_{i=1}^{a} (\bar{Y}_{i.} - \bar{Y}_{..})^2

    여기서 Yˉi.\bar{Y}_{i.}는 요인 AAii번째 수준의 평균, nbn_b는 요인 BB의 모든 수준에 대해 관측된 샘플 수

  • 요인 B의 제곱합 (SSB):

    SSB=naj=1b(Yˉ.jYˉ..)2SSB = n_a \sum_{j=1}^{b} (\bar{Y}_{.j} - \bar{Y}_{..})^2

    여기서 Yˉ.j\bar{Y}_{.j}는 요인 BBjj번째 수준의 평균, nan_a는 요인 AA의 모든 수준에 대해 관측된 샘플 수

  • 상호작용의 제곱합 (SSAB):

    SSAB=i=1aj=1b(YˉijYˉi.Yˉ.j+Yˉ..)2SSAB = \sum_{i=1}^{a} \sum_{j=1}^{b} (\bar{Y}_{ij} - \bar{Y}_{i.} - \bar{Y}_{.j} + \bar{Y}_{..})^2

    상호작용 효과는 각 요인의 주효과가 제거된 후 남은 변동을 측정

3) 오차(잔차) 제곱합 (SSE):

오차 제곱합은 데이터의 변동 중 설명되지 않는 부분

SSE=i=1aj=1bk=1nij(YijkYˉij)2SSE = \sum_{i=1}^{a} \sum_{j=1}^{b} \sum_{k=1}^{n_{ij}} (Y_{ijk} - \bar{Y}_{ij})^2

잔차는 관측된 값과 각 수준에서 예측된 평균 값 사이의 차이

4) 각 제곱합을 이용한 분산 분석표:

제곱합을 기반으로 분산 분석표를 작성
각 요인의 변동을 분해하고, F-값과 p-값을 계산

SourceSum of Squares (SS)Degrees of Freedom (df)Mean Square (MS)F-valuep-value
요인 ASSAa1a-1SSAa1\frac{SSA}{a-1}MSAMSE\frac{MS_A}{MS_E}(p-값)
요인 BSSBb1b-1SSBb1\frac{SSB}{b-1}MSBMSE\frac{MS_B}{MS_E}(p-값)
상호작용SSAB(a1)(b1)(a-1)(b-1)SSAB(a1)(b1)\frac{SSAB}{(a-1)(b-1)}MSABMSE\frac{MS_{AB}}{MS_E}(p-값)
오차SSEab(n1)ab(n-1)SSEab(n1)\frac{SSE}{ab(n-1)}
총합SSTN1N-1
  • Mean Square (MS): 각 요인의 평균 제곱합은 제곱합을 자유도로 나누어 계산
    - MS=SSdfMS = \frac{SS}{df}
  • F-value: F-값은 각 요인의 평균 제곱합을 오차 평균 제곱합(MSE)으로 나누어 계산
    - F-값이 클수록 해당 요인이 종속 변수에 미치는 영향이 크다
  • p-value: F-값을 기반으로 해당 요인이 유의미한지(통계적으로 의미 있는지를) 판단
    - 일반적으로 p-값이 0.05보다 작으면 해당 요인은 종속 변수에 유의미한 영향을 미침

문제

문제1


토마토 수확량을 늘리기 위해 세 가지 다른 비료 유형과 네 가지 다른 물주기를 실험하고자 한다.
연구소에서는 12개의 토마토 식물을 무작위로 조합해 각 조합에 대해 반복적으로 실험 수행

비료 유형에 따른 효과

  • 귀무가설(H0H_0): 모든 비료 유형의 토마토 수확량 평균은 동일
  • 대립가설(H1H_1): 적어도 2개 이상의 비료 유형에서의 토마토 수확량 평균이 다름

물주기 따른 효과

  • 귀무가설(H0H_0): 모든 물 주기의 토마토 수확량 평균 동일
  • 대립가설(H1H_1): 적어도 2개 이상의 물 주기에서의 토마토 수확량 평균이 다름

비료 유형과 물 주기 간의 상호작용 효과

  • 귀무가설(H0H_0): 비료 유형과 물 주기 간의 상호작용은 토마토 수확량에 미치지 않음
  • 대립가설(H1H_1): 비료 유형과 물 주기 간의 상호작용은 토마토 수확량에 미침
  1. 비료 유형이 토마토 수확량의 평균에 차이가 있는지 검정통계량 구하기
  2. p-value
  3. 귀무가설 채택
  4. 물 검정통계량
  5. 물 p-value
  6. 물 귀무가설
    7.비료와 물의 상호작용 검정통계량
  7. p-value
  8. 귀무가설

풀이

  • ols는 최소 제곱법 회귀 분석을 수행하는 함수
  • anoval_lm은 ANOVA(분산분석)을 수행하여 각 요인이 종속 변수에 영향을 미치는지 평가
import statsmodels.api as sm
from statsmodels.formula.api import ols

model = ols('수확량 ~ C(비료유형) * (물주기)', data=df).fit()
anova_table = sm.stats.anova_lm(model)
print(anova_table)
                  df        sum_sq      mean_sq         F    PR(>F)
C(비료유형)          2.0   5251.722222  2625.861111  3.184685  0.059334
C(물주기)           3.0   9057.000000  3019.000000  3.661490  0.026460
C(비료유형):C(물주기)   6.0   4271.833333   711.972222  0.863491  0.535426
Residual        24.0  19788.666667   824.527778       NaN       NaN


검정 통계량 -> F
p-value -> PR
p값 0.05 이상, 채택/ 이하 기각

profile
gpt로 다시 배우는 개발

0개의 댓글