R で aov() と anova() を使用する場合


R のaov()関数とanova()関数は似ているように見えますが、実際には 2 つの異なるシナリオで使用されます。

ANOVA モデルを近似し、その結果を ANOVA 要約テーブルに表示する場合は、 aov()を使用します。

ネストされた回帰モデルの適合を比較して、特定の係数セットを含む回帰モデルが、係数のサブセットのみを含むモデルよりも大幅に良好な適合を提供するかどうかを判断する場合は、 anova()を使用します。

以下の例は、各機能の実際の使用方法を示しています。

例 1: R で aov() を使用する方法

一元配置分散分析を実行して、3 つの異なる運動プログラムが減量に異なる影響を与えるかどうかを判断したいとします。

実験に参加する人を 90 人募集し、30 人をランダムに割り当てて、プログラム A、プログラム B、またはプログラム C のいずれかを 1 か月間実行します。

次のコードは、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 未満であることがわかります。これは、3 つのプログラム間の平均体重減少に統計的に有意な差があることを意味します。

例 2: R で anova() を使用する方法

勉強時間数を使用して、特定の大学の学生の試験の得点を予測したいとします。次の 2 つの回帰モデルを適用することを決定できます。

完全なモデル:スコア = β 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

出力テーブルの p 値 (0.002144) は 0.05 未満であるため、検定の帰無仮説を棄却し、完全なモデルが縮小モデルよりも統計的に有意に良好な適合を提供すると結論付けることができます。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

R で一元配置分散分析を実行する方法
R で二元配置分散分析を実行する方法
R で反復測定 ANOVA を実行する方法

コメントを追加する

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