MANOVA à deux facteurs avec R / Two between subjects factors MANOVA using R

Présentation des données / Data

 

Exemple de réalisation d’une MANOVA avec R. Le fichier contient le résultat d’un groupe de patient et d’un groupe contrôle qui ont passé deux tests (questionnaires) concernant l’image du corps (le questionnaire BAS-2 et le questionnaire ISP 25). Les résultats des tests (scores globaux) sont indiqués dans deux colonnes (nommées BAS2 et ISP). Ce sont les variables dépendantes. Les autres colonnes concernent des variables indépendantes et notamment les deux facteurs que nous allons étudier : le genre (GENRE) et l’appartenance au groupe contrôle ou patient (GROUP). Attention ces données contiennent des cases vides.

Example of a MANOVA with R. The file contains the result of a patient group and a control group who have passed two tests (questionnaires) concerning the body image (the BAS-2 questionnaire and the questionnaire ISP 25). The results of the tests (overall scores) are indicated in two columns (named BAS2 and ISP). These are the dependent variables. The other columns concern independent variables and in particular the two factors that we will study: gender (GENRE) and membership in the control or patient group (GROUP). Warning, there are some empty cases in the data.

Important : cliquer sur les cases noires pour voir le code / Please click on black boxes to see the code

 

Les conditions pour utiliser une MANOVA / Assumptions of MANOVA

Il y a des conditions sur les données pour pouvoir effectuer une MANOVA

  1. Les variables dépendantes doivent être distribuées normalement dans les groupes.
  2. Les variances doivent être homogènes dans tous les niveaux des facteurs
  3. La linéarité doit être vérifiée entre toutes les paires de variables dépendantes, et dans tous les couples possibles de variable-covariate.

MANOVA can be used in certain conditions:

  1. The dependent variables should be normally distribute within groups. The R function mshapiro.test( )[in the mvnormtest package] can be used to perform the Shapiro-Wilk test for multivariate normality. This is useful in the case of MANOVA, which assumes multivariate normality.
  2. Homogeneity of variances across the range of predictors.
  3. Linearity between all pairs of dependent variables, all pairs of covariates, and all dependent variable-covariate pairs in each cell.

Lecture de donnees / Read data in data file

 

D <- read.table("manova-data.csv",sep=";",dec=",",header=TRUE) ;
head(D) ;
ID
<int>
GENRE
<fctr>
GROUP
<fctr>
BAS
<int>
ISP
<int>
1 1 WOMAN PATIENT 35 0
2 2 WOMAN PATIENT 45 31
3 3 MAN PATIENT 35 47
4 4 MAN PATIENT 43 38
5 5 WOMAN PATIENT 43 30
6 6 MAN PATIENT 38 16

Mise en forme des facteurs / Independant variables as factor

 

Le variables DGENREetDGENREetDGROUP doivent être transformées car elles n’ont pas le type facteur. On crée deux nouveaux facteurs en changeant le type.

The variables D $ GENRE and D $ GROUP must be transformed because they do not have the factor type. Two new factors are created by changing the type.

 

group <- factor(D$GROUP) ;
genre <- factor(D$GENRE) ;

Manova

 

On donnera les résultats avec la statistique de Pillai (conseillée, plus robuste) et la statistique de Wils (plus couramment utilisée).

The results will be given with the Pillai statistic (recommended, more robust) and the Wils statistic (more commonly used).

 

res.man <- manova(cbind(D$BAS,D$ISP) ~ genre*group, data = iris)
summary.manova(res.man)
            Df   Pillai approx F num Df den Df  Pr(>F)  
genre        1 0.151127   4.9849      2     56 0.01018 *
group        1 0.052965   1.5660      2     56 0.21790  
genre:group  1 0.026223   0.7540      2     56 0.47519  
Residuals   57                                          
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
summary.manova(res.man,"Wilks")
            Df   Wilks approx F num Df den Df  Pr(>F)  
genre        1 0.84887   4.9849      2     56 0.01018 *
group        1 0.94704   1.5660      2     56 0.21790  
genre:group  1 0.97378   0.7540      2     56 0.47519  
Residuals   57                                         
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Effets univariés / Univariate effects

 

summary.aov(res.man)
 Response 1 :
            Df Sum Sq Mean Sq F value  Pr(>F)  
genre        1  222.8 222.776  3.9443 0.05185 .
group        1   46.4  46.384  0.8212 0.36863  
genre:group  1   57.7  57.665  1.0210 0.31656  
Residuals   57 3219.4  56.480                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 Response 2 :
            Df Sum Sq Mean Sq F value Pr(>F)
genre        1   60.0  60.000  0.3884 0.5356
group        1   54.1  54.057  0.3499 0.5565
genre:group  1    1.7   1.656  0.0107 0.9179
Residuals   57 8805.3 154.480               

5 observations deleted due to missingness