R에서 scheffe 테스트를 수행하는 방법


일원 분산 분석은 3개 이상의 독립 그룹 평균 간에 통계적으로 유의한 차이가 있는지 여부를 확인하는 데 사용됩니다.

ANOVA 테이블의 전체 p-값이 특정 유의 수준보다 낮으면 그룹 평균 중 하나 이상이 다른 평균과 다르다고 말할 수 있는 충분한 증거가 있는 것입니다.

그러나 이는 어떤 그룹이 서로 다른지는 알려주지 않습니다. 이는 단순히 모든 그룹 평균이 동일하지는 않다는 것을 알려줍니다.

어떤 그룹이 서로 다른지 정확히 알기 위해서는 패밀리별 오류율을 조절할 수 있는 사후 테스트를 수행해야 합니다 .

가장 일반적으로 사용되는 사후 테스트 중 하나는 Scheffe 테스트입니다.

이 튜토리얼에서는 R에서 Scheffe 테스트를 수행하는 방법을 설명합니다.

예: R의 Scheffe 테스트

교사가 세 가지 다른 학습 방법이 학생들 사이에 다른 시험 점수로 이어지는지 여부를 알고 싶어한다고 가정해 보겠습니다. 이를 테스트하기 위해 그녀는 각 학습 기술을 사용하도록 10명의 학생을 무작위로 할당하고 그들의 시험 결과를 기록합니다.

R에서 다음 단계를 사용하여 일원 분산 분석을 적용하여 세 그룹 간의 평균 시험 점수 차이를 테스트하고 Scheffe 테스트를 사용하여 정확히 어떤 그룹이 다른지 확인할 수 있습니다.

1단계: 데이터세트를 만듭니다.

다음 코드는 학생 30명 모두의 시험 결과가 포함된 데이터 세트를 생성하는 방법을 보여줍니다.

 #create data frame
data <- data.frame(technique = rep (c("tech1", "tech2", "tech3"), each = 10 ),
                   score = c(76, 77, 77, 81, 82, 82, 83, 84, 85, 89,
                             81, 82, 83, 83, 83, 84, 87, 90, 92, 93,
                             77, 78, 79, 88, 89, 90, 91, 95, 95, 98))

#view first six rows of data frame
head(data)

  technical score
1 tech1 76
2 tech1 77
3 tech1 77
4 tech1 81
5 tech1 82
6 tech1 82

2단계: 각 그룹의 시험 결과를 봅니다.

다음 코드는 각 그룹의 시험 결과 분포를 시각화하기 위해 상자 그림을 생성하는 방법을 보여줍니다.

 boxplot(score ~ technique,
        data = data,
        main = "Exam Scores by Studying Technique",
        xlab = "Studying Technique",
        ylab = "Exam Scores",
        col = "steelblue",
        border = "black")

R의 Bonferroni 수정

3단계: 일원 분산 분석을 수행합니다.

다음 코드는 일원 분산 분석을 수행하여 각 그룹의 평균 시험 점수 간의 차이를 테스트하는 방법을 보여줍니다.

 #fit the one-way ANOVA model
model <- aov(score ~ technique, data = data)

#view model output
summary(model)

            Df Sum Sq Mean Sq F value Pr(>F)  
technical 2 211.5 105.73 3.415 0.0476 *
Residuals 27 836.0 30.96                 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

전체 p-값( 0.0476 )이 0.05보다 작으므로 이는 각 그룹의 평균 시험 점수가 동일하지 않음을 나타냅니다.

다음으로 Scheffe 테스트를 수행하여 어떤 그룹이 다른지 확인합니다.

4단계: Scheffe 테스트를 수행합니다.

Scheffe 테스트를 수행하기 위해 DescTools 패키지의 ScheffeTest() 함수를 사용합니다.

다음 코드는 예제에서 이 함수를 사용하는 방법을 보여줍니다.

 #load DescTools package
library(DescTools)

#perform Scheffe's test
ScheffeTest(model)

  Posthoc multiple comparisons of means: Scheffe Test 
    95% family-wise confidence level

$technical
            diff lwr.ci upr.ci pval    
tech2-tech1 4.2 -2.24527202 10.645272 0.2582    
tech3-tech1 6.4 -0.04527202 12.845272 0.0519 .  
tech3-tech2 2.2 -4.24527202 8.645272 0.6803    

---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

결과를 해석하는 방법은 다음과 같습니다.

  • 기술 2와 기술 1의 시험 결과 평균 차이는 4.2 입니다. 평균 차이에 해당하는 p-값은 0.2582 입니다.
  • 기술 3과 기술 1의 시험 결과 평균 차이는 6.4 입니다. 평균 차이에 해당하는 p-값은 0.0519 입니다.
  • 기술 3과 기술 2의 시험 결과 평균 차이는 2.2 입니다. 평균 차이에 해당하는 p-값은 0.6803 입니다.

사용하기로 결정한 유의성 수준에 따라 통계적으로 유의하게 다르게 나타나는 유일한 두 그룹은 기법 3과 기법 1입니다.

추가 리소스

R에서 일원 분산 분석을 수행하는 방법
R에서 Tukey 테스트를 수행하는 방법
R에서 Bonferroni 보정을 수행하는 방법

의견을 추가하다

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