분산분석 #
ANOVA, Analysis of variance #
분산분석이란 #
- 두 개 이상 다수의 집단을 비교하자고 할 때 집단 내의 분산, 총 평균과 각 집단의 평균의 차이에 의해 생긴 집단 간 분산의 비교를 통해 만들어진 F 분포를 이용하여 가설검정을 하는 방법이다.
- F 분포는 분산의 비교를 통해 얻어진 분포비율이며, (군간변동)/(군내변동)으로 얻어진다.
- 정규성, 분산의 동질성, 관찰의 독립성 가정하에 이루어진다.
- 일원/이원분산분석, 다원량분산분석, 공분산분석이 있다.
R문법 #
- fit a model:
- fit <- aov(y~A,data=mydata)
- Diagnostic Plots:
- plot(fit)
- Evaluate model
- summary(fit)
- Multiple comparisons
- TukeyHSD(fit)
코드 #
## 1. load data
diet = read.csv("data/diet.csv",row.names=1)
diet$weight.loss = diet$initial.weight - diet$final.weight
## 2. fit a model
fit <- aov(weight.loss~diet.type,data=diet[diet$diet.type!="B",])
## 3. Diagnostic Plots:
plot(fit)
## 4. Evaluate model
summary(fit)
=> 유의수준이 0.00664 로써, 타이어트 타입에 따라 유의한 차이를 보임
Df Sum Sq Mean Sq F value Pr(>F)
diet.type 1 43.4 43.4 8.036 0.00664 **
Residuals 49 264.6 5.4
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.
## 5. Multiple comparisons
TukeyHSD(fit)
=> 다이어트 C 타입과 A 타입간에서 유의한 차이를 보임
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = weight.loss ~ diet.type, data = diet[diet$diet.type != "B", ])
$diet.type
diff lwr upr p adj
C-A 1.848148 0.5379975 3.158299 0.0066444
인풋 #
https://drive.google.com/a/insilicogen.com/uc?id=1PN1zYXREmr0V_CMkLqx9oikJdvJKjpsj&export=download
참고 #
- R을 이용한 누구나 하는 통계분석. 안재형 지음 | 한나래 | 2016년 03월 25일 출간 (1쇄 2011년 01월 15일)
- 위키: https://ko.wikipedia.org/wiki/%EB%B6%84%EC%82%B0_%EB%B6%84%EC%84%9D