R에서 aov()와 anova()를 사용해야 하는 경우


R의 aov()anova() 함수는 비슷해 보이지만 실제로는 두 가지 다른 시나리오에서 사용됩니다.

ANOVA 모델을 적합시키고 결과를 ANOVA 요약 테이블에 표시하려는 경우 aov()를 사용합니다.

특정 계수 세트가 있는 회귀 모델이 계수 하위 세트만 있는 모델보다 훨씬 더 나은 적합성을 제공하는지 여부를 결정하기 위해 중첩 회귀 모델의 적합성을 비교하려는 경우 anova()를 사용합니다.

다음 예에서는 각 기능을 실제로 사용하는 방법을 보여줍니다.

예제 1: R에서 aov()를 사용하는 방법

세 가지 다른 운동 프로그램이 체중 감량에 서로 다른 영향을 미치는지 여부를 확인하기 위해 일원 분산 분석을 수행한다고 가정해 보겠습니다.

우리는 한 달 동안 프로그램 A, 프로그램 B 또는 프로그램 C를 따르도록 무작위로 30명을 할당하는 실험에 참여할 90명을 모집합니다.

다음 코드는 R에서 aov() 함수를 사용하여 이 일원 분산 분석을 수행하는 방법을 보여줍니다.

 #make this example reproducible
set. seeds (0)

#create data frame
df <- data. frame (program = rep(c("A", "B", "C"), each= 30 ),
                 weight_loss = c(runif(30, 0, 3),
                                 runif(30, 0, 5),
                                 runif(30, 1, 7)))

#fit one-way anova using aov()
fit <- aov(weight_loss ~ program, data=df)

#view results
summary(fit)

            Df Sum Sq Mean Sq F value Pr(>F)    
program 2 98.93 49.46 30.83 7.55e-11 ***
Residuals 87 139.57 1.60                     
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

모델 결과를 보면 프로그램의 p값(0.0000000000755)이 0.05보다 작은 것을 알 수 있는데, 이는 세 프로그램 간 평균 체중 감량에 통계적으로 유의미한 차이가 있음을 의미한다.

예제 2: R에서 anova()를 사용하는 방법

특정 대학의 학생들의 시험 점수를 예측하기 위해 공부한 시간을 사용한다고 가정해 보겠습니다. 다음 두 가지 회귀 모델을 적용하기로 결정할 수 있습니다.

전체 모델: 점수 = β 0 + B 1 (시간) + B 2 (시간) 2

축소 모델: 점수 = β 0 + B 1 (시간)

다음 코드는 R의 anova() 함수를 사용하여 전체 모델이 축소 모델보다 훨씬 더 나은 적합성을 제공하는지 확인하기 위해 적합성 부족 테스트를 수행하는 방법을 보여줍니다.

 #make this example reproducible
set. seeds (1)

#create dataset
df <- data.frame(hours = runif(50, 5, 15), score=50)
df$score = df$score + df$hours^3/150 + df$hours*runif(50, 1, 2)

#view head of data
head(df)

      hours score
1 7.655087 64.30191
2 8.721239 70.65430
3 10.728534 73.66114
4 14.082078 86.14630
5 7.016819 59.81595
6 13.983897 83.60510

#fit full model
full <- lm(score ~ poly(hours,2), data=df)

#fit reduced model
reduced <- lm(score ~ hours, data=df)

#perform lack of fit test using anova()
anova(full, reduced)

Analysis of Variance Table

Model 1: score ~ poly(hours, 2)
Model 2: score ~ hours
  Res.Df RSS Df Sum of Sq F Pr(>F)   
1 47 368.48                                
2 48 451.22 -1 -82.744 10.554 0.002144 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

출력 테이블(0.002144)의 p-값이 0.05보다 작으므로 검정의 귀무 가설을 기각하고 전체 모델이 축소 모델보다 통계적으로 유의미하게 더 나은 적합성을 제공한다는 결론을 내릴 수 있습니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 일원 분산 분석을 수행하는 방법
R에서 양방향 ANOVA를 수행하는 방법
R에서 반복 측정 ANOVA를 수행하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다