Comment effectuer une ANOVA à trois facteurs dans R



Une ANOVA à trois facteurs est utilisée pour déterminer s’il existe ou non une différence statistiquement significative entre les moyennes de trois groupes indépendants ou plus qui ont été répartis sur trois facteurs.

L’exemple suivant montre comment effectuer une ANOVA à trois facteurs dans R.

Exemple : ANOVA à trois facteurs dans R

Supposons qu’un chercheur veuille déterminer si deux programmes d’entraînement conduisent à des améliorations moyennes différentes de la hauteur de saut chez les joueurs de basket-ball universitaires.

Le chercheur soupçonne que le sexe et la division (Division I ou II) peuvent également affecter la hauteur de saut, c’est pourquoi il collecte également des données sur ces facteurs.

Son objectif est d’effectuer une ANOVA à trois facteurs pour déterminer comment le programme d’entraînement, le sexe et la division affectent la hauteur de saut.

Suivez les étapes suivantes pour effectuer cette ANOVA à trois facteurs dans R :

Étape 1 : Créer les données

Tout d’abord, créons un bloc de données pour contenir les données :

#create dataset
df <- data.frame(program=rep(c(1, 2), each=20),
                 gender=rep(c('M', 'F'), each=10, times=2),
                 division=rep(c(1, 2), each=5, times=4),
                 height=c(7, 7, 8, 8, 7, 6, 6, 5, 6, 5,
                          5, 5, 4, 5, 4, 3, 3, 4, 3, 3,
                          6, 6, 5, 4, 5, 4, 5, 4, 4, 3,
                          2, 2, 1, 4, 4, 2, 1, 1, 2, 1)) 

#view first six rows of dataset
head(df)

  program gender division height
1       1      M        1      7
2       1      M        1      7
3       1      M        1      8
4       1      M        1      8
5       1      M        1      7
6       1      M        2      6

Étape 2 : Afficher les statistiques descriptives

Avant d’effectuer l’ANOVA à trois facteurs, nous pouvons utiliser dplyr pour résumer rapidement l’augmentation moyenne de la hauteur de saut regroupée par programme d’entraînement, sexe et division :

library(dplyr)

#calculate mean jumping height increase grouped by program, gender, and division
df %>%
  group_by(program, gender, division) %>%
  summarize(mean_height = mean(height))

# A tibble: 8 x 4
# Groups:   program, gender [4]
  program gender division mean_height
                 
1       1 F             1         4.6
2       1 F             2         3.2
3       1 M             1         7.4
4       1 M             2         5.6
5       2 F             1         2.6
6       2 F             2         1.4
7       2 M             1         5.2
8       2 M             2         4  

Voici comment interpréter le résultat :

  • L’augmentation moyenne de la hauteur de saut chez les femmes de division I ayant utilisé le programme d’entraînement 1 était de 4,6 pouces .
  • L’augmentation moyenne de la hauteur de saut chez les femmes de division II qui ont utilisé le programme d’entraînement 1 était de 3,2 pouces .
  • L’augmentation moyenne de la hauteur de saut chez les hommes de la division I ayant utilisé le programme d’entraînement 1 était de 7,4 pouces .

Et ainsi de suite.

Étape 3 : Effectuer l’ANOVA à trois facteurs

Ensuite, nous pouvons utiliser la fonction aov() pour effectuer l’ANOVA à trois :

#perform three-way ANOVA
model <- aov(height ~ program * gender * division, data=df)

#view summary of three-way ANOVA
summary(model)

                        Df Sum Sq Mean Sq F value   Pr(>F)    
program                  1   36.1   36.10  65.636 2.98e-09 ***
gender                   1   67.6   67.60 122.909 1.71e-12 ***
division                 1   19.6   19.60  35.636 1.19e-06 ***
program:gender           1    0.0    0.00   0.000    1.000    
program:division         1    0.4    0.40   0.727    0.400    
gender:division          1    0.1    0.10   0.182    0.673    
program:gender:division  1    0.1    0.10   0.182    0.673    
Residuals               32   17.6    0.55                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

La colonne Pr(>F) affiche la valeur p pour chaque facteur individuel et les interactions entre les facteurs.

D’après les résultats, nous pouvons voir qu’aucune des interactions entre les trois facteurs n’était statistiquement significative.

Nous pouvons également constater que chacun des trois facteurs – programme, sexe et division – était statistiquement significatif.

Nous pouvons maintenant utiliser à nouveau dplyr pour trouver séparément l’augmentation moyenne de la hauteur de saut pour le programme, le sexe et la division :

library(dplyr)

#find mean jumping increase by program
df %>%
  group_by(program) %>%
  summarize(mean_height = mean(height))

# A tibble: 2 x 2
  program mean_height
           
1       1         5.2
2       2         3.3

#find mean jumping increase by gender
df %>%
  group_by(gender) %>%
  summarize(mean_height = mean(height))

# A tibble: 2 x 2
  gender mean_height
          
1 F             2.95
2 M             5.55

#find mean jumping increase by division
df %>%
group_by(division) %>%
summarize(mean_height = mean(height))

# A tibble: 2 x 2
  division mean_height
            
1        1        4.95
2        2        3.55

À partir du résultat, nous pouvons observer ce qui suit :

  • L’augmentation moyenne de la hauteur de saut chez les individus ayant utilisé le programme d’entraînement 1 ( 5,2 pouces ) était supérieure à l’augmentation moyenne chez les individus ayant utilisé le programme d’entraînement 2 (3,3 pouces ).
  • L’augmentation moyenne de la hauteur de saut chez les hommes ( 5,55 pouces ) était supérieure à l’augmentation moyenne chez les femmes (2,95 pouces ).
  • L’augmentation moyenne de la hauteur de saut chez les joueurs de division 1 ( 4,95 pouces ) était supérieure à l’augmentation moyenne chez les joueurs de division 2 (3,55 pouces ).

En conclusion, nous dirions que le programme d’entraînement, le sexe et la division sont tous des indicateurs significatifs de l’augmentation de la hauteur de saut chez les joueurs.

Nous dirions également qu’il n’y a pas d’effets d’interaction significatifs entre ces trois facteurs.

Ressources additionnelles

Les didacticiels suivants expliquent comment adapter d’autres modèles ANOVA dans R :

Comment effectuer une ANOVA unidirectionnelle dans R
Comment effectuer une ANOVA bidirectionnelle dans R

Ajouter un commentaire

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