Skip to content

R활용 아노바 #

Find similar titles

3회 업데이트 됨.

Edit
  • 최초 작성자
    twkang
  • 최근 업데이트
    twkang

분산분석 #

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

참고 #

  1. R을 이용한 누구나 하는 통계분석. 안재형 지음 | 한나래 | 2016년 03월 25일 출간 (1쇄 2011년 01월 15일)
  2. 위키: https://ko.wikipedia.org/wiki/%EB%B6%84%EC%82%B0_%EB%B6%84%EC%84%9D
0.0.1_20230725_7_v68