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")
ステップ 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 です。