ANOVA in R
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Statistics
Table of Contents
분산분석(ANOVA)? #
그룹 간 변동(between-group variation)과 그룹 내 변동(within-group variation)을 이용해 분석, 그룹 간 변동이 그룹 내 변동보다 크다면 그룹 간에 차이가 있다고 검정함 2개의 집단을 비교하고자 하는 경우에는 일반적으로 t-test 방법을 많이 이용하지만 비교하고자 하는 집단이 3개 이상일 경우에는 ANOVA를 이용해야 한다.
분산분석의 가정 #
정규성 #
- 각 그룹의 변수는 정규분포를 따라야 한다.
등분산성 #
- 그룹 간 분산 값은 서로 같아야 한다.
독립성 #
- 그룹 간 변수의 값은 서로 독립적이어서 서로에 대한 영향력을 갖지 않아야 한다.
분산분석의 종류 #
일원분산분석(one-way ANOVA) #
- 집단 간 하나의 종속변수에 대해서 평균의 차이가 통계적으로 유의한지를 검정
- 종속변수가 1개이며 독립변수도 1개인 경우
이원분산분석(two-way ANOVA) #
- 집단 간 하나의 종속변수에 대해 평균의 차이가 유의미한지를 검정하는 측면에서는 일원분산분석과 유사하나 이원분산분석은 독립변수가 2개이며 이들 독립변수와 종속변수 간의 상호작용 효과를 비교할 수 있다.
R을 활용한 분산분석 예제 #
일원분산분석(one-way ANOVA) #
> analysis<-aov(Sepal.Width~Species,data=iris)
> summary(analysis)
Df Sum Sq Mean Sq F value Pr(>F)
Species 2 11.35 5.672 49.16 <2e-16 ***
Residuals 147 16.96 0.115
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1
P-value 값을 보고 귀무가설의 기각 여부를 판단한다. P-value 값이 0.05를 기준으로 낮은 값을 나타낸다면 귀무가설을 기각하고 iris 품종 간 해당 변수에 대해 평균차가 유의미하다고 검정결과를 낼 수 있다.
분산분석이 성립하기 위한 조건으로서 각 변수에 대해 등분산성을 가지는지 검정하기 위해 bartlett.test 함수를 이용한다.
> bartlett.test(Sepal.Width~Species,data=iris)
Bartlett test of homogeneity of variances
data: Sepal.Width by Species
Bartlett`s K-squared = 2.0911, df = 2, p-value = 0.3515
마찬가지로 P-value 값을 비교하여 등분산성 여부를 검정한다. P-value 값이 0.05보다 크다면 기존 귀무가설을 기각하지 못하므로 등분산성을 가진다고 본다.
이원분산분석(two-way ANOVA) #
이원분산분석을 위해서 R에서 제공하는 mtcars데이터의 변속기 종류(am) 실린더 개수(cyl)정보를 다음과 같이 변경해준다.
> m2<-mtcars
> m2$am <- factor(mtcars$am, levels=c(0, 1), labels=c("Automatic", "Manual"))
> m2$cyl <- factor(mtcars$cyl, levels=c(4, 6, 8), labels=c("4cyl", "6cyl", "8cyl"))
> analysis2<-aov(mpg ~ am*cyl,data=m2)
> summary(analysis2)
Df Sum Sq Mean Sq F value Pr(>F)
am 1 405.2 405.2 44.064 4.85e-07 ***
cyl 2 456.4 228.2 24.819 9.35e-07 ***
am:cyl 2 25.4 12.7 1.383 0.269
Residuals 26 239.1 9.2
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘
am:cy1에서의 P-value 0.269로 0.05보다 크므로 한쪽의 변화가 다른 쪽에 미치는 영향이 없다고 볼 수 있다.
또한, am , cyl 각각의 P-value는 0.05보다 낮은 값을 가지므로 각각 차이가 유의미하다고 볼 수 있다.
이를 그래프를 그려서 다시 한번 비교해보면
> with(m2, interaction.plot(am, cyl, mpg))
그림 1. 선끼리 교차가 되지 않는 것을 확인할 수 있다. 따라서 am 및 cyl의 효과가 mpg의 변화에 대해 상호 작용을 보이지 않는 것으로 나타난다고 볼 수 있다.(출처:Steemit.com)