R でネストされた anova を実行する方法 (ステップバイステップ)
ネストされた ANOVA は、少なくとも 1 つの因子が別の因子内にネストされている ANOVA (「分散分析」) の一種です。
たとえば、研究者が 3 つの異なる肥料が異なるレベルの植物の成長をもたらすかどうかを知りたいとします。
これをテストするために、3 人の異なる技術者がそれぞれ 4 つの植物に肥料 A を散布し、他の 3 人の技術者がそれぞれ 4 つの植物に肥料 B を散布し、他の 3 人の技術者がそれぞれ 4 つの植物に肥料 C を散布します。
このシナリオでは、応答変数は植物の成長であり、2 つの要因は技術者と肥料です。技術者が肥料の中に閉じ込められていることが判明しました。
次の段階的な例は、R でこの入れ子になった ANOVA を実行する方法を示しています。
ステップ 1: データを作成する
まず、R にデータを保持するデータ フレームを作成しましょう。
#create data df <- data. frame (growth=c(13, 16, 16, 12, 15, 16, 19, 16, 15, 15, 12, 15, 19, 19, 20, 22, 23, 18, 16, 18, 19, 20, 21, 21, 21, 23, 24, 22, 25, 20, 20, 22, 24, 22, 25, 26), fertilizer=c(rep(c(' A ', ' B ', ' C '), each= 12 )), tech=c(rep(1:9, each= 4 ))) #view first six rows of data head(df) growth fertilizer tech 1 13 A 1 2 16 A 1 3 16 A 1 4 12 A 1 5 15 A 2 6 16 A 2
ステップ 2: ネストされた ANOVA を調整する
次の構文を使用して、R でネストされた ANOVA を当てはめることができます。
aov(答え ~ 因子 A / 因子 B)
金:
- 応答:応答変数
- 因子 A:最初の因子
- 因子 B:最初の因子にネストされた 2 番目の因子
次のコードは、データセットにネストされた ANOVA を当てはめる方法を示しています。
#fit nested ANOVA nest <- aov(df$growth ~ df$fertilizer / factor(df$tech)) #view summary of nested ANOVA summary(nest) Df Sum Sq Mean Sq F value Pr(>F) df$fertilizer 2 372.7 186.33 53.238 4.27e-10 *** df$fertilizer:factor(df$tech) 6 31.8 5.31 1.516 0.211 Residuals 27 94.5 3.50 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ステップ 3: 結果を解釈する
p 値列を見て、各要因が植物の成長に統計的に有意な影響を与えるかどうかを判断できます。
上の表から、肥料は植物の成長に対して統計的に有意な影響を及ぼしますが (p 値 < 0.05)、技術者は影響を及ぼさないことがわかります (p 値 = 0.211)。
これは、植物の成長を促進したい場合は、肥料を適用する個々の技術者ではなく、使用する肥料に焦点を当てる必要があることを示しています。
ステップ 4: 結果を視覚化する
最後に、箱ひげ図を使用して、肥料別および技術者別の植物の成長の分布を視覚化できます。
#load ggplot2 data visualization package library (ggplot2) #create boxplots to visualize plant growth ggplot(df, aes (x=factor(tech), y=growth, fill=fertilizer)) + geom_boxplot()
グラフは、3 つの異なる肥料間で成長に大きなばらつきがあるが、各肥料グループ内の技術者間ではそれほど大きなばらつきがないことを示しています。
これは、入れ子型分散分析の結果と一致しているようで、肥料は植物の成長に大きな影響を与えるが、個々の技術者には影響がないことが確認されています。