Comment effectuer une ANOVA imbriquée dans R (étape par étape)



Une ANOVA imbriquée est un type d’ANOVA (« analyse de variance ») dans laquelle au moins un facteur est imbriqué dans un autre facteur.

Par exemple, supposons qu’un chercheur veuille savoir si trois engrais différents produisent différents niveaux de croissance des plantes.

Pour tester cela, trois techniciens différents saupoudrent chacun l’engrais A sur quatre plantes, trois autres techniciens saupoudrent chacun l’engrais B sur quatre plantes et trois autres techniciens saupoudrent chacun l’engrais C sur quatre plantes.

Dans ce scénario, la variable de réponse est la croissance des plantes et les deux facteurs sont le technicien et l’engrais. Il s’avère que le technicien est niché dans l’engrais :

Exemple d'ANOVA imbriquée

L’exemple étape par étape suivant montre comment effectuer cette ANOVA imbriquée dans R.

Étape 1 : Créer les données

Tout d’abord, créons un bloc de données pour contenir nos données dans 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

Étape 2 : Ajuster l’ANOVA imbriquée

Nous pouvons utiliser la syntaxe suivante pour ajuster une ANOVA imbriquée dans R :

aov(réponse ~ facteur A / facteur B)

où:

  • réponse : la variable de réponse
  • facteur A : le premier facteur
  • facteur B : le deuxième facteur imbriqué dans le premier facteur

Le code suivant montre comment ajuster l’ANOVA imbriquée pour notre ensemble de données :

#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                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Étape 3 : Interpréter le résultat

Nous pouvons consulter la colonne de valeur p pour déterminer si chaque facteur a ou non un effet statistiquement significatif sur la croissance des plantes.

D’après le tableau ci-dessus, nous pouvons voir que l’engrais a un effet statistiquement significatif sur la croissance des plantes (valeur p < 0,05), mais pas le technicien (valeur p = 0,211).

Cela nous indique que si nous souhaitons augmenter la croissance des plantes, nous devons nous concentrer sur l’engrais utilisé plutôt que sur le technicien individuel qui épand l’engrais.

Étape 4 : Visualisez les résultats

Enfin, on peut utiliser des boxplots pour visualiser la répartition de la croissance des plantes par engrais et par technicien :

#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()

Le graphique montre qu’il existe une variation significative de la croissance entre les trois différents engrais, mais pas autant de variation entre les techniciens au sein de chaque groupe d’engrais.

Cela semble correspondre aux résultats de l’ANOVA emboîtée et confirme que les engrais ont un effet significatif sur la croissance des plantes, mais pas les techniciens individuels.

Ressources additionnelles

Comment effectuer une ANOVA unidirectionnelle dans R
Comment effectuer une ANOVA bidirectionnelle dans R
Comment effectuer une ANOVA à mesures répétées dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *