728x90
반응형
분산분석(ANOVA, ANalysis Of VAriance)는 t-검정의 확장으로, 세 개 이상 집단 간 차이를 검정할 때 사용하는 통계적 방법입니다.
ANOVA는 독립변수가 범주형이고 종속변수가 연속형인 경우, 독립변수의 수준에 따른 종속변소의 변동을 분석하는 데 사용됩니다.
◾분산분석의 가정
정규성, 등분산성, 독립성 등의 가정을 만족해야 합니다.
- 정규성 : 데이터는 정규 분포를 따른다. → Shapiro-Wilk 검정, Kolmogorov-Smirnov 검정, Q-Q Plot 등
- 등분산성 : 모든 그룹에서 종속변수의 분산이 동일해야 한다. → levene 검정 , Bartlett 검정 등
- 독립성 : 각 집단의 관측치는 독립적이다. 즉, 한 데이터 포인터가 다른 데이터포인트에 영향을 미치지 않아야 하며, 각 그룹간에도 상호 독립적이어야 한다.
이러한 가정이 만족되지 않는 경우, 데이터변환(예:로그변환)을 적용하거나 비모수검정(예:Kruskal-Wallis 검정)을 사용하는 등의 대안을 고려해야 합니다.
◾가설 설정
- 귀무가설(H0) : 모든 집단의 평균은 같다.
- 대립가설(H1) : 적어도 한 집단은 평균이 다르다.
◾분산분석의 종류
1. 일원 분산 분석(one-way ANOVA)
한 개의 독립변수(요인)가 하나의 종속변수에 미치는 영향 분석
- 하나의 독립 변수에는 집단의 수가 3개 이상
- 예) 공부 방법이 시험 점수에 미치는 영향 비교. 공부방법에는 3가지 방법이 있다.
# 일원 분산 분석
import scipy.stats as stats
stats.f_oneway(집단1, 집단2, 집단3)
import statsmodels.formula.api as smf
model = smf.ols('종속변수~독립변수', data).fit()
from statsmodels.stats.anova import anova_lm
anova_lm(model)
정규성, 등분산성, 독립성을 만족하지 않는 경우 크루스왈리스 검정을 수행합니다.
# 크루스왈리스 검정
from scipy import stats
stats.kruskal(집단1,집단1,집단1)
2. 이원 분산 분석(two-way ANOVA)
- 두 개의 독립변수(요인)가 종속변수에 미치는 영향과 두 요인 간의 상호작용 효과 분석
- 예) 다이어트 방법(A, B, C)과 운동 유무(운동, 운동 안함)에 따른 체중 감소 효과를 비교
- 가설
- 각 요인에 대해 가설 검정
- 상호작용 효과에 대한 가설 검정
# 범주형 데이터 처리
import statsmodels.formula.api as stm
model = stm.ols('종속변수~C(독립변수1)+C(독립변수2)+C(독립변수1):C(독립변수2)', df).fit()
import statsmodels.stats.anova as a
print(a.anova_lm(model))
# formula 활용
import statsmodels.formula.api as stm
model = stm.ols('종속변수~C(독립변수1)*C(독립변수2)', df).fit()
import statsmodels.stats.anova as a
print(a.anova_lm(model))
3. 다원 분산 분석(Multivariate ANOVA, MANOVA)
- 세 개 이상의 독립변수(요인)가 종속변수에 미치는 영향과 요인들의 상호작용 효과 분석
4. 반복측정 분산분석(Repeated Measures ANOVA)
- 동일한 대상자에 대해 시간 경과에 따른 종속변수의 변화를 분석
- (예) 같은 환자에게 시간의 경과에 따라 여러 번 치료를 적용하고 그 효과를 측정할 때
5. 혼합 설계 분산분석(Mixed-Design ANOVA)
- 집단간 요인과 집단내 요인을 모두 고려하여 분석
- 일부 독립변수는 그룹 간 차이를 나타내고(그룹 내 변수), 다른 변수는 반복 측정을 포함(그룹 간 편수)
반응형
'데이터분석' 카테고리의 다른 글
데이터가 정규분포를 따르지 않을 때 사용하는 비모수 검정 (1) | 2024.06.17 |
---|---|
데이터가 정규분포를 따를 때 사용하는 t-test (2) | 2024.06.17 |
선형회귀분석 (python의 statsmodels 활용) (1) | 2024.06.14 |
회귀분석 - 상관관계 (0) | 2024.06.12 |
카이제곱 검정 > 독립성 검정, 동질성 검정 (2) | 2024.06.11 |