Module R’Stat1 : ANOVA

Novembre 2019 ; IRD-Montpellier-France

CC BY-NC-SA 3.0

ANOVA

ANOVA

  • Analyse de variance ou ANOVA
  • One-way analysis of variance (ANOVA)
  • One-factor ANOVA

sur la base des cours de L. Reboul et du “R book”.

ANOVA

Une extension de la comparaison de moyennes quand il y a plus de deux groupes. Les groupes sont des facteurs (factor), nous allons tester si la moyenne des différents groupes est la même ou pas. L’hypothèse Ho est qu’il y a au moins un groupe dont la moyenne n’est pas égale à celle des autres groupes.

ANOVA : hypothèses

  • les observations sont indépendantes
  • pour chaque groupe (factor), les données suivent une loi Normale
  • pour chaque groupe, la variance est la même

ANOVA et R

##    myGp       myData
## 1     1  0.231054022
## 2     2 -0.289179134
## 3     3 -1.280162893
## 4     1  1.072713244
## 5     2  0.215148253
## 6     3 -1.041524613
## 7     1 -1.592904833
## 8     2  0.237602054
## 9     3  0.507547292
## 10    1 -0.436476788
## 11    2 -0.827732999
## 12    3  1.816606232
## 13    1  0.496288170
## 14    2 -0.473338790
## 15    3  0.096940305
## 16    1 -0.565519591
## 17    2  1.183138913
## 18    3 -0.157524688
## 19    1 -0.639482046
## 20    2 -0.999999966
## 21    3 -0.457214343
## 22    1 -0.015784216
## 23    2  0.554783877
## 24    3  1.044781271
## 25    1  0.551952859
## 26    2  0.336166229
## 27    3 -2.143860102
## 28    1  0.068475877
## 29    2 -1.019164615
## 30    3  0.351129907
## 31    1 -1.093372937
## 32    2  0.367960655
## 33    3  0.613626848
## 34    1  0.803314853
## 35    2 -0.351708575
## 36    3  0.644295080
## 37    1  1.629525175
## 38    2 -1.276627060
## 39    3  1.010594324
## 40    1 -0.478130690
## 41    2 -1.137574471
## 42    3 -1.850821962
## 43    1 -1.636169441
## 44    2  0.015931003
## 45    3  0.004911134
## 46    1 -0.520214353
## 47    2 -1.810873680
## 48    3 -1.727836718
## 49    1  1.102038725
## 50    2 -1.421477370
## 51    3  0.725185746
## 52    1  0.133766537
## 53    2  0.695776695
## 54    3 -0.063354107
## 55    1  0.290947665
## 56    2 -0.102632573
## 57    3  1.868037279
## 58    1 -2.225499922
## 59    2 -0.700208123
## 60    3  1.020031993
## 61    1 -0.539738946
## 62    2  2.735205972
## 63    3  0.957983197
## 64    1 -0.089488483
## 65    2  0.523134904
## 66    3  0.519632447
## 67    1 -1.081405571
## 68    2 -0.598408912
## 69    3  0.764627767
## 70    1 -1.337090605
## 71    2  1.170173433
## 72    3 -0.669016413
## 73    1  0.395627675
## 74    2  0.930320959
## 75    3 -0.634532996
## 76    1  0.515346091
## 77    2 -0.206944827
## 78    3  0.892421647
## 79    1 -0.342180830
## 80    2 -0.216201463
## 81    3  1.691006745
## 82    1 -0.412201398
## 83    2  0.092082861
## 84    3  0.204286020
## 85    1 -0.314259735
## 86    2  0.680878209
## 87    3 -1.607875073
## 88    1 -0.376465894
## 89    2 -0.072720816
## 90    3 -0.109153163

ANOVA et R

## 'data.frame':    90 obs. of  2 variables:
##  $ myGp  : int  1 2 3 1 2 3 1 2 3 1 ...
##  $ myData: num  0.231 -0.289 -1.28 1.073 0.215 ...

Le vecteur qui détermine le groupe doit être de type factor !

  • Eviter les groupes 1, 2, 3
  • TOUJOURS vérifier le type de données avec str()

ANOVA et R

## 'data.frame':    90 obs. of  2 variables:
##  $ myGp  : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ...
##  $ myData: num  0.231 -0.289 -1.28 1.073 0.215 ...

ANOVA

ANOVA

ANOVA

ANOVA

ANOVA

  • Variable explicative qualitative (type factor) : “1”, “3”, ou “2”
  • Variable à expliquer quantitative continue : tirage au hasard dans une loi Normale de paramètres \(\mu = 0\) et \(\sigma = 1\).

Ici nous avons 1 facteur qui prend comme niveaux (ou modalités) “1”, “2”, “3” (\(p = 3\)), et pour chaque niveau un échantillon de taille 30 (plan équilibré \(n_1 = ... = n_p\)).

ANOVA

##  1  2  3 
## 30 30 30
## $`1`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -2.2255 -0.5591 -0.3282 -0.2135  0.3695  1.6295 
## 
## $`2`
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -1.81087 -0.67476 -0.08768 -0.05888  0.48434  2.73521 
## 
## $`3`
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -2.14386 -0.59020  0.27771  0.09969  0.86047  1.86804

ANOVA

Nous allons tester si la moyenne des différents groupes est la même ou pas = mettre en évidence une différence de valeur moyenne selon le niveau du facteur.

\(Y_j=\mu + \alpha_j + \epsilon_j, j=1,... ,p\)

\(H_0: \alpha_1 = ... = \alpha_j = ... = \alpha_P\)

ANOVA

On suppose :

\(y_{ij}=\mu+\alpha_j+\epsilon_{ij}, i=1,...,n_j, j=1,...,p\)

ANOVA

Dans notre modèle, on ne connait pas \(\mu\), et \(\alpha_1,...,\alpha_p\), ce qui fait \(p+1\) inconnus. Comme nous n’avons que \(p\) groupes, on impose que :

\(\sum_{j=1}^{p}n_j\alpha_j=0\)

compensation entre groupes

ANOVA

On minimise (moindres carrés) :

\(\sum_{i}\sum_{j}(y_{ij}-\alpha_j-\mu)^2\)

ANOVA

Somme des carrés des variations dans le niveau j

\(D_j = \sum(y_{ij}-\overline{y}_j)^2\)

##        1        2        3 
## 21.99745 25.23369 34.23868

ANOVA

Somme des carrés des variations intra-niveaux

\(SS_{intra}=\sum_jD_j=(n-p)S^2\)

## [1] 81.46982

ANOVA

Somme des carrés des variations inter-niveaux (SSE)

\(SS_{inter}=\sum_jnj(\overline{y}_j-\overline{y})^2\)

## [1] 1.471524

ANOVA

Somme des carrés des variations totales (SST)

\(SST = \sum(y_{ij}-\overline{y})^2\)

## [1] 82.94134

ANOVA

\(SST=SS_{inter}+SS_{intra}\)

## [1] 82.94134
## [1] 82.94134

ANOVA

Indice de qualité : pourcentage de variation expliqué par le modèle

\(\eta^2=SS_{inter}/SST\)

## [1] 0.01774174

ANOVA

Indice de Fisher

\(F=\frac{SS_{inter}/(p-1)}{SS_{intra}/n-p}\)

## [1] 0.7857056

ANOVA en images… (the R book)

ANOVA en images…

ANOVA en images…

ANOVA en images…

ANOVA en images…

Représentation de la variance totale.

Somme des carrés des variations totales (SST)

\(SST = \sum(y_{ij}-\overline{y})^2\)

## [1] 82.94134

ANOVA en images…

ANOVA en images…

ANOVA en images…

Somme des carrés des variations intra-niveaux

\(SS_{intra}=\sum_jD_j=(n-p)S^2\)

\(D_j = \sum(y_{ij}-\overline{y}_j)^2\)

## [1] 81.46982

ANOVA en images…

Si \(SST = SS_{intra}\), pas de différence entre moyennes.

Calcul de \(SS_{inter} = SST - SS_{intra}\)

=> quel seuil pour différence significqtive, test de Fisher sur les variances.

ANOVA

Indice de Fisher

\(F=\frac{SS_{inter}/(p-1)}{SS_{intra}/n-p}\)

## [1] 0.7857056
## [1] 3.101296

ANOVA

Validation des hypothèses

  • échantillonnage aléatoire
  • variances égales
  • indépendance des erreurs
  • distribution normale des erreurs

ANOVA ; variances

##         1         2         3 
## 0.7585327 0.8701273 1.1806440
## 
##  Fligner-Killeen test of homogeneity of variances
## 
## data:  df$myData by df$myGp
## Fligner-Killeen:med chi-squared = 1.836, df = 2, p-value = 0.3993

ANOVA

##             Df Sum Sq Mean Sq F value Pr(>F)
## df$myGp      2   1.47  0.7358   0.786  0.459
## Residuals   87  81.47  0.9364

ANOVA ; hypothèses