R でシェッフェ テストを実行する方法


一元配置分散分析は、 3 つ以上の独立したグループの平均間に統計的に有意な差があるかどうかを判断するために使用されます。

ANOVA 表全体のp 値が一定の有意性レベルを下回っている場合、グループ平均の少なくとも 1 つが他の平均とは異なると言える十分な証拠があります。

ただし、これではどのグループが互いに異なるかは分かりません。これは単に、すべてのグループの平均が等しいわけではないことを示しています。

どのグループが互いに異なっているかを正確に知るには ファミリーごとのエラー率を制御できる事後テストを実行する必要があります。

最も一般的に使用される事後テストの 1 つはシェッフェ テストです。

このチュートリアルでは、R でシェフェ テストを実行する方法について説明します。

例: R でのシェッフェ テスト

教師が、3 つの異なる学習方法が生徒間でテストの得点に差をもたらすかどうかを知りたいとします。これをテストするために、彼女は 10 人の生徒をランダムに割り当てて各学習手法を使用させ、試験結果を記録しました。

R で次の手順を使用して、一元配置分散分析を近似して 3 つのグループ間の平均試験スコアの差をテストし、シェッフェ テストを使用してどのグループが異なるかを正確に判断できます。

ステップ 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のボンフェローニ補正

ステップ 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 未満であるため、これは各グループの試験平均点が同じではないことを示しています。

次に、シェッフェ検定を実行して、どのグループが異なるかを判断します。

ステップ 4: シェッフェ テストを実行します。

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です。

どの有意水準を使用するかに応じて、統計的に有意に異なると思われる 2 つのグループのみがテクニック 3 とテクニック 1 です。

追加リソース

R で一元配置分散分析を実行する方法
R で Tukey テストを実行する方法
R でボンフェローニ補正を実行する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です