BST0801 Cours
BST0801 Cours
BST0801 Cours
Cours
Laurent Debelle
06 janvier 2022
1 | 19
BST0801 – Cours
1. Conformité d’effectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Méthode graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Test d’ajustement du χ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Conformité d’une proportion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3. Conformité d’une moyenne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
V. Tests d’homogénéité 12
1. Homogénéité d’effectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Comparaison de proportions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. Comparaison de deux variances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4. Comparaison de deux moyennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Echantillons indépendants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Echantillons appariés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Comparaison de plus de deux moyennes - 1 facteur . . . . . . . . . . . . . . . . . . . . . . . 15
Test ANOVA paramétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Conditions de validité de l’ANOVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Tests post-hoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Test ANOVA non paramétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2 | 19
BST0801 – Cours
Avant propos
Nous avons vu au semestre précédent que les statistiques descriptives permettent de décrire et de
comprendre le comportement des données que nous analysons. A partir, d’un échantillon donné, nous
sommes capables d’encadrer les valeurs caractérisant la population dont il est issu (moyenne µ, proportion
p) avec un risque α que nous contrôlons.
Néanmoins, ce type de statistiques permet difficilement de conclure sur les différences pouvant être
observées entre les intervalles de confiances issus de deux échantillons. Est-ce que ces différences sont
dues à la fluctuation d’échantillonnage ou existent-elles vraiment ?
Les statistiques inférentielles ont pour objet de répondre à ces questions et c’est ce qui fait leur
force. Il s’agit de techniques et de méthodes qui permettent d’analyser les données issues de plusieurs
observations et de les comparer afin de cerner les caractéristiques de la population concernée. Elles
permettent également d’identifier un modèle capable d’engendrer et d’expliquer ces données. Ce dernier
aspect ne sera pas abordé dans ce cours.
Les notions présentées ici sont des notions utilisées couramment en biostatistiques qui couvrent de
très nombreuses applications. L’accent sera mis surtout sur les analyses univariées et quelques notions
d’analyse bivariée seront abordées. L’analyse statistique multivariée ne sera pas abordée.
De nombreux élements de ce cours ont été empruntés à l’excellent ouvrage en ligne rédigé par
Maxime HERVE intitulé Aide-mémoire de statistique appliquée à la biologie. Construire son étude
et analyser les résultats à l’aide du logiciel R Version de 2016, disponible et actualisé sur son site
https://www.maximeherve.com/r-et-statistiques.
Dans la préface, l’auteur écrit :
“Une bonne analyse est une analyse qui répond pertinemment à une question précise. La règle
d’or est donc avant tout de bien identifier cette question ou série de questions, et de ne jamais
l’oublier car le choix de la méthode statistique la plus pertinente en dépend et il est facile de
se perdre en analysant ses données.”
Ne l’oubliez pas !
3 | 19
BST0801 – Cours
1. On formule une hypothèse nulle H0 qui est celle que l’on va tester et une hypothèse alternative H1
qui doit être incompatible avec H0 .
2. En fonction de la question posée, de la nature des variables considérées et de leur distribution, on
détermine quel test doit être utilisé pour répondre à la question posée par H0 . Ce test se caractérise
par sa variable de test (VT). Il s’agit d’une fonction mathématique plus ou moins complexe parfois
appelée fonction discriminante.
3. On suppose que H0 est vraie et on calcule alors la valeur Xcalc qui correspond à la valeur observée
de VT d’après ce que nous disent les échantillons dont on dispose.
4. On utilise la valeur de la VT calculée pour déterminer une p-value, i.e. la probabilité d’obtenir la
valeur mesurée si H0 est vraie.
5. On conclut sur les deux hypothèses posées grâce à cette p-value :
— si la p-value est supérieure au seuil α fixé avant le test (5 % en général), on ne rejete pas H0 .
— si la p-value est inférieure au seuil α, on rejete H0 .
1. Hypothèses statistiques
La façon dont on pose les hypothèses statistiques est essentielle pour le déroulement d’un test. Il est
donc important de comprendre leur rôle précis de façon à pouvoir les formuler correctement.
En règle générale, H0 est une hypothèse du type “il ne se passe rien” (le médicament n’a pas d’effet),
ou “la moyenne vaut cette valeur précise” (µ = 3 g/l). Dans le processus de décision statistique H0 sera
acceptée afin de pouvoir déterminer la p-value.
L’hypothèse alternative H1 est par définition incompatible avec H0 . Cependant elle peut être formulée
de plusieurs façons. Par exemple, si H0 pose µ1 = µ2 , H1 peut être µ1 6= µ2 , ou µ1 < µ2 , ou encore
µ1 > µ2 .
D’un point de vue pratique, selon la formulation de H1 , la distribution du risque α au sein de la loi
suivie par la VT sera différente. C’est ce que l’on nomme la latéralité d’un test.
La situation de gauche correspond à un test bilatéral, l’erreur est répartie des deux côtés de la moyenne.
Cela correspond à la situation µ1 =6 µ2 . Les deux autres situations correspondent à des tests unilatéraux,
situation centrale µ1 < µ2 , à droite µ1 > µ2 .
4 | 19
BST0801 – Cours
2. Variables de test
Les variables de test sont des variables aléatoires construites de façon à pouvoir modéliser la situation
à laquelle le test en question s’applique. Comme toutes les variables aléatoires elles suivent une loi de
probabilité connue. C’est grâce à cette connaissance que l’on peut calculer la p-value.
Dans la plupart des case, la variable de test suit une loi connue, si des conditions sont remplies. Cela
signifie donc que si les conditions d’un test ne sont pas vérifiées, il sera très hasardeux de donner la
p-value de celui-ci. Il est donc impératif que les conditions d’un test soient vérifiées avant de l’utiliser. Si
ce n’est pas le cas, il faut rechercher un autre test équivalent dont les conditions propres puissent être
satisfaites. Si n’en existe pas, on ne peut pas conclure.
3. Risques et puissance
La probabilité associée au fait de rejeter H0 si celle-ci est fausse (soit 1 − β) est appelée puissance du
test.
Le risque β ne peut pas être fixé. En effet, il dépend de la distribution de VT sous H1 . Or cette
distribution est inconnue, puisque l’hypothèse H1 regroupe une infinité de distributions. De la même
façon, la puissance d’un test est aussi une variable dépendant de la distribution de la VT sous H1 .
Dans ce schéma, Xseuil représente la valeur de la VT X dont la valeur de la fonction de répartition
vaut 1 − α sous l’hypothèse H0
5 | 19
BST0801 – Cours
Figure 3 – Distribution des risques dans le cas d’un test unilatéral droit
4. Correction de la p-value
Si une série de tests statistiques est réalisée avec à chaque fois α comme seuil de rejet de H0 , le risque
global de rejeter H0 si celle-ci est vraie augmente. En effet, plus on effectue de tests, plus on a de chance
de tomber sur un échantillon peu représentatif de la population dont il provient (donnant une p-value
inférieure au seuil). Il est donc nécessaire de corriger le seuil de rejet α de chaque test (ou leur p-value, ce
qui revient au même) lorsque plusieurs sont réalisés, afin que le risque global soit égal à la valeur de α
souhaitée. Cette situation se présente :
— lorsque les tests vont permettre de prendre une décision unique, dès que l’un d’eux au moins
permet le rejet de H0 .
— lorsque l’on réalise une série de tests deux-à-deux, soit directement soit après une analyse globale
(type ANOVA, test du χ2 d’homogénéité, . . . ).
Il existe plusieurs méthodes pour faire cela. Les principlaes sont la technique de Bonferroni, la technique
séquentielle de Holm et la technique du False Discovery Rate (FDR) de Benjamini et Hochberg.
La technique la plus stricte est celle de Bonferroni, la moins stricte celle du FDR. Il est actuellement
admis que la méthode de Bonferroni est souvent trop restrictive et que la méthode de Holm est un bon
compromis. C’est pourquoi, nous utiliserons préférentiellement celle-ci. En tout état de cause, la méthode
de correction du seuil de rejet de H0 doit être décidée avant de réaliser les tests.
Dans R, si p est un vecteur contenant les p-values non corrigées, on utilise la fonction p.adjust().
6 | 19
BST0801 – Cours
p.adjust(p, method="bonferroni")
p.adjust(p, method="holm")
p.adjust(p,method="fdr")
Il existe par ailleurs des méthodes dédiées aux comparaisons multiples adaptées aux tests statistiques
réalisés. Par exemple, pairwise.t.test() qui fait des tests t de Student par pair tout en corrigeant les
p-values.
Pour s’y retrouver, il faut se concentrer uniquement sur la nature de la variable à expliquer :
7 | 19
BST0801 – Cours
2. Types de tests
On distingue les tests paramétriques, c’est-à-dire les tests qui utilisent des paramètres statistiques
comme la moyenne, l’écart type, la fréquence, etc, et les tests non-paramétriques qui n’utilisent pas ce
type de paramètres et sont utilisables sans information spécifique sur les données.
Les tests paramétriques sont tous basés sur un modèle statistique précis. C’est pourquoi, leur utilisation
n’est possible que si les données sont distribuées normalement. Ces tests sont plus puissants que les tests
non paramétriques. C’est pourquoi ils sont à privilégier quand plusieurs tests sont possibles.
Un test statistique (ou test d’hypothèse) consiste à détecter une différence significative :
— Entre une population étudiée et une valeur cible (test de comparaison à une valeur théorique ou
test de conformité).
— Entre deux populations (test de comparaison de population ou test d’homogénéité)
— Concernant la liaison de deux variables (test de corrélation ou d’association)
— Vis-à-vis de la compatibilité des données par rapport à une loi de distribution (test d’adéquation)
A partir d’un échantillonnage de données, le test va calculer la probabilité d’obtenir une telle
configuration d’échantillons en supposant que les données sont :
— Conformes à la cible dans le cas d’un test de comparaison à une valeur théorique
— Homogènes dans le cas d’un test de comparaison de population
— Parfaitement associées dans le cas d’un test de corrélation
— Conformes à la loi de distribution dans le cas d’un test d’adéquation.
Il s’agit ici des différentes formulations pour H0 , hypothèse nulle, qui considère qu’il n’y a aucune
différence entre les données et leur éventuelle cible.
Un des choix les plus critiques dans la mise en oeuvre d’un test est de choisir sa latéralité. Presque
tous les tests implémentés dans R proposent l’argument alternative qui définit comment doit être
formulée H1 . On a two.sided pour un test bilatéral et less ou greater pour un test unilatéral.
Le choix de la latéralité d’un test est une question de bon sens.
Si vous cherchez une conformité, le test sera toujours bilatéral. En effet, peu importe que le résultat
soit plus grand ou plus petit que la valeur cible, ce qui vous importe, c’est que ce soit précisément cette
valeur et pas une autre.
Pour un test d’homogénéité, il faut analyser la situation. Si vous voulez tester un nouvel engrais
sur des plantes, il semble évident que vous devrez choisir greater. On s’attend à ce que l’engrais fasse
pousser les plantes. Si c’est un produit dont on ne sait a priori rien, on utilisera plutôt un test bilatéral.
Dans tous les cas, ce choix doit être fait avant de mettre le test en œeuvre.
Dès lors qu’elle peut être faite, la normalité des données doit être testée si c’est pertinent. Si la
normalité est vérifiée, les tests paramétriques peuvent être utilisés, sinon, il faut avoir recours à des tests
non-paramétriques équivalents.
8 | 19
BST0801 – Cours
Méthode graphique
L’évaluation de la normalité peut être faite de façon visuelle en utilisant la fonction qqplot() qui
permet de représenter les quantiles d’une distribution en ordonnée en fonction de ceux d’une autre
distribution représentée en abscisse.
Distribution inconnue
22
20
18
16
14
−2 −1 0 1 2 −2 −1 0 1 2
Test de Shapiro-Wilk
Ce test est un test d’ajustement à une loi normale. On l’utilise en complément des QQplots. C’est un
test très couramment utilisé mais ce n’est pas le seul.
shapiro.test(serie)
Si on applique ce test aux séries représentées ci-dessus, dans le premier cas, on calcule une p-value qui
vaut 0.70284. Elle est supérieure à 0,05. On ne peut donc pas rejeter l’hypothèse nulle H0 . Dans le second
cas, elle vaut 1.065 × 10−4 . Ici, on doit rejeter H0 .
9 | 19
BST0801 – Cours
La liaison entre deux variables est évaluée par la covariance cov et le coefficient de corrélation r. Selon
le type de variable, ces valeurs sont calculées différemment.
Il existe deux méthodes de calcul : - une méthode paramétrique (méthode de Pearson) - une méthode
non paramétrique (méthode de Spearman)
Si serie1 et serie2 sont deux vecteurs de données de même longueur, la syntaxe R est :
2. Test de corrélation
Le calcul d’un coefficient de corrélation laisse souvent penser l’utilisateur qu’une corrélation existe. En
fait, la valeur seule ne suffit pas à le démontrer. Elle peut au mieux le suggérer. Pour déterminer si une
corrélation existe entre deux séries de données numériques, il faut réaliser un test de corrélation.
L’objectif est ici de déterminer s’il existe un lien quelconque entre deux variables quantitatives qui ont
chacune un certain nombre de modalités. Pour traiter ce cas, il faut que les données soient organisées
sous forme d’un tableau de contingence de A en fonction de B que l’on nommera ici tab.cont.
Test d’indépendance du χ2
10 | 19
BST0801 – Cours
l’hypothèse nulle sont tous supérieurs à 5. Si ce n’est pas le cas, R vous donnera un message d’alerte ; ce
qui doit vous conduire à faire un autre test.
Dans le cas particulier de tableaux de 2 modalités comparées à 2 autres modalités, il est nécessaire
d’appliquer une correction de continuité aux données de façon à ce que le test donne un résultat exploitable.
Dans R, cette correction se fait en indiquant l’argument correct=TRUE. Cette règle est valable pour tous
les tests de χ2 .
Si le nombre d’individus considérés est inférieur à 200, on effectue un test exact de Fisher en faisant
fisher.test(tab.cont). La logique de décision reste la même.
1. Conformité d’effectifs
Dans ce cas de figure précis, on désire savoir si la série de données dont on dispose est distribuée selon
une loi de probabilité donnée.
Méthode graphique
L’ajustement à une distribution théorique se teste avant tout graphiquement, car il est rare que des
données réelles suivent parfaitement une loi théorique. Il y a donc toujours une part de subjectivité dans
l’estimation d’un ajustement.
La méthode graphique à utiliser est ici encore d’utiliser un QQplot en indiquant cette fois-ci en abscisse
la distribution désirée. Si les points du graphe sont représentés approximativement sur une droite, on
peut alors raisonnablement prétendre que la distribution cible est suivie.
Test d’ajustement du χ2
Dans certains cas, la loi de probabilité n’est pas une loi classique, mais on la connait. Par exemple, on
sait prédire les proportions dans des expériences de croisements entre espèces (lois de Mendel, etc.)
Quand on connait la distribution des probabilités, on peut alors utiliser un test de χ2 pour évaluer si
les effectifs observés sont conformes à la distribution de probabilité attendue.
Les effectifs et les probabilités correspondantes doivent être rangés dans le même ordre.
L’objectif de ce test est de savoir si la fréquence d’occurrence d’un caractère A au sein d’un échantillon
est compatibe avec la proportion théorique p0 pour ce caractère au sein de la population.
11 | 19
BST0801 – Cours
binom.test(ni, n, p=prop.cible)
Dans cette expression, ni représente le nombre d’individus présentant A, n est la taille de l’échantillon
et prop.cible est la proportion théorique de A au sein de la population.
Si la série de données est distribuée selon une loi normale, on utilise le test de Student. Sinon, et
à condition que la distribution des données soit symétrique (vérifiable graphiquement avec la fonction
hist()) et compte au moins 8 individus, on utilise le test des rangs signés de Wilcoxon. Dans tous les
autres cas, on ne sait pas faire.
Dans ces expressions, donnees représente le vecteur de la série de données que l’on veut tester et
valeur.cible représente la valeur de µ0 .
V. Tests d’homogénéité
1. Homogénéité d’effectifs
On dispose d’un tableau de contingence pour une variable qualitative présentant n modalités. On
dispose de plusieurs échantillons dans lesquels, on a dénombré les effectifs relatifs à chacune de ces n
modalités. Les échantillons n’ont pas besoin d’être de taille identique. La question que l’on se pose est de
savoir si la répartition des effectifs observées au sein des échantillons est homogène ou pas.
On peut répondre à cette question en faisant un test d’homogénéité de χ2 . Pour cela, il faut que la
somme des effectifs soit supérieure à 200. Sinon on réalise un test de exact de Fisher. Si besoin, une
correction de continuité peut être appliquée au test de χ2 (argument correct).
12 | 19
BST0801 – Cours
Dans ces expressions, effectifs représente le tableau de contingence contenant tous les effectifs. Si le
test renvoie une p-value indiquant une différence significative, cela signifie qu’au moins un des échantillons
n’est pas homogène aux autres. Mais on ne sait pas le(s)quel(s).
2. Comparaison de proportions
On se propose de comparer les proportions observées sur des échantillons pour des variables qualitatives
ne présentant que deux catégories. Il existe des tests spécifiques permettant de comparer des proportions
pour des variables ayant plus de deux modalités. Ils ne seront pas étudiés ici.
Si les échantillons sont indépendants et si la somme des effectifs est supérieur à 200, on réalise un test
d’homogénéité de χ2 adapté à la comparaison de proportions, le test de proportions. Sinon, on réalise un
test exact de Fisher.
Dans ces deux expressions, tableau est un tableau dans lequel les effectifs sont organisés par ligne
pour chaque échantillon et dans deux colonnes (les deux modalités). Les proportions testées sont les
proportions calculées à partir des effectifs présents dans la colonne de gauche.
Le test paramétrique le plus utilisé pour la comparaison de variances est le test de F de Fisher. Ce
test requiert que les données soient normalement distribuées.
Si on considére deux vecteurs comprenant des données normalement distribuées, on réalise le test en
utilisant la fonction var.test().
Il s’agit d’une situation très souvent rencontrée en biologie dans laquelle la mise en œuvre du test
dépend avant tout de la nature des échantillons et de la distribution des séries de données à comparer.
Les élements à prendre en considération sont :
— les échantillons sont-ils indépendants ou appariés ?
— les données ont-elles la même variance ?
— les données sont-elles distribuées normalement ?
— les distributions ont-elles des formes de distribution comparables ?
13 | 19
BST0801 – Cours
L’examen minutieux de toutes ces conditions va conduire à choisir un test plutôt qu’un autre. On
préférera toujours utiliser un test paramétrique car ils portent réellement sur la comparaison de moyennes.
Mais, dans certains cas, on n’aura pas d’autre choix que d’utiliser un test non-paramétrique qui compare
des médianes. Si les conditions d’utilisation de ces derniers tests sont vérifiées, alors les conclusions
relatives aux médianes sont valides également pour les moyennes. Dans certains cas, il faut aussi savoir
reconnaître qu’on ne peut pas faire de test fiable. Il n’y a alors pas d’autres choix que de revoir le protocole
expérimental et d’augmenter la taille des échantillons.
Les hypothèses testées sont :
Echantillons indépendants
Si les échantillons sont indépendants, le choix du test va dépendre avant tout de la distribution des
données au sein des deux échantillons.
— Si la distribution est normale dans les deux groupes :
— si les variances sont homogènes, on utilise un test de Student (test paramétrique)
— sinon, on utilise un test de Student avec correction de Welch (test paramétrique)
— Si la distribution n’est pas normale dans un des deux groupes, on utilise le test de Mann-Whitney-
Wilcoxon (test non paramétrique), à condition que les distributions soient de même forme dans
les deux groupes. Si ce n’est pas le cas, on doit alors passer par des tests spécifiques que l’on ne
détaillera pas ici.
La forme de la distribution s’apprécie en réalisant un histogramme des séries de données. Cette méthode
est assez efficace quand on dispose de nombreuses données. Pour les petits et très petits échantillons, cette
méthode n’est souvent pas adaptée. On réalise alors un test non-paramétrique de Cramer (cramer.test()
du package cramer) dont l’hypothèse nulle est que les deux distributions sont comparables.
Si vecteur1 et vecteur2 sont deux vecteurs contenant les données dont on veut comparer les moyennes,
la syntaxe est :
On remarquera ici que le défaut d’utilisation du test de Student est fait avec correction de Welch.
Echantillons appariés
Si les échantillons sont appariés, on construit la série des différences entre les deux conditions et c’est
cette série qui est analysée en premier lieu.
— Si la distribution des différences est normale, on utilise un test de Student pour séries appariées
(test paramétrique).
— Si ce n’est pas le cas, on effectue le test des rangs signés de Wilcoxon (test non paramétrique), si
la distribution des différences est symétrique et si on dispose d’au moins 8 individus.
Si vecteur1 et vecteur2 sont deux vecteurs contenant les données dont on veut comparer les moyennes,
la syntaxe R est :
14 | 19
BST0801 – Cours
On désire analyser et comparer entre elles des données (valeurs numériques) obtenues selon des
modalités différentes (échantillons différents, traitements différents, etc). On se propose donc d’analyser
les données en fonction d’un facteur unique qui représente les groupes considérés.
La méthode d’analyse la plus couramment utilisée dans ce cas de figure est l’analyse de variance ou
test ANOVA. Contrairement à son nom, cette méthode statistique compare bien des moyennes entre elle
; néanmoins, certaines conditions doivent être remplies afin de pouvoir avoir confiance dans le résultat
qu’elle fournit.
L’ANOVA dont nous parlerons ici est une méthode qui ne prend en compte qu’un seul facteur à la
fois : par exemple, les valeurs (numériques) et le traitement (facteur). Il existe des méthodes ANOVA
prenant en compte 2 facteurs et plus ; c’est-à-dire que chaque valeur numérique est liée à deux facteurs
distincts. Ce peut être par exemple, les valeurs (numériques), le traitement (facteur), l’expérimentateur
(facteur). Nous ne les traiterons pas ici.
Cette partie du cours est inspirée largement des excellents articles de Claire Della Vedova que l’on
peut trouver sur son blog (https://statistique-et-logiciel-r.com/anova-a-un-facteur-partie-1/).
Principe de l’ANOVA. L’ANOVA repose sur l’analyse la dispersion des données (c’est à dire
l’écartement des données autour de la moyenne). L’idée est de dire que la dispersion des données a deux
origines :
— l’effet du facteur étudié. Cette part de dispersion ou variabilité est appellée variabilité factorielle
ou variabilité inter-classe.
— la variabilité intrinsèque des données. On parle de variabilité intra-classe. Cette variabilité est
aussi appelée variabilité résiduelle, car c’est la part de variabilité qui reste lorsque la variabilité
factorielle est soustraite à la variabilité totale. On considère que la variabilité résiduelle est le
“bruit des données”, car elle correspond à la part qui n’est pas expliquée.
Le principe de l’ANOVA est de déterminer, à l’aide d’un test statistique, si la part de dispersion
imputable au facteur étudié, est significativement supérieure à la part résiduelle.
Si la dispersion factorielle est significativement supérieure à la dispersion résiduelle, alors cela signifie
que la dispersion des données, autour des moyennes de chaque modalité, est faible par rapport à la
dispersion des moyennes autour de la moyenne générale. Et si les moyennes relatives à chaque modalité
sont très dispersées, en même temps que la variabilité intra-classe est faible, alors cela signifie que les
moyennes sont globalement différentes.
A l’inverse, si la dispersion factorielle est du même ordre de grandeur que la dispersion résiduelle,
alors cela signifie que les moyennes ne sont pas globalement différentes.
Calcul de la dispersion totale. La première étape de l’ANOVA à un facteur, consiste à mesurer la
dispersion totale des données, en employant comme paramètre la somme des distances au carré, entre
chaque observation et la moyenne globale (ou Grand Mean). On appelle ce paramètre la Somme des
Carrés Totaux (SCT).
Les notations utilisées pour le calcul sont les suivantes.
15 | 19
BST0801 – Cours
Le facteur étudié comporte k modalités. Le nombre de données, pour chacune des modalités, est noté
ni . Le nombre total de données est noté N . Chacune des observations est notée yij où i est l’indice des
modalités (1 6 i 6 k) et j est l’indice de l’observation au sein d’une modalité (1 6 j 6 ni ).
Les moyennes des observations de chaque modalité sont notées yi .
ni
1 X
yi = (yij )
ni i=1
La Somme des Carrés Totaux (SCT) correspond à la somme des distances au carré entre chaque
valeur observée et la moyenne globale.
nj
k X
X
SCT = (yij − y)2
i=1 j=1
nj
k X
X
SCF = (yi − y)2
i=1 j=1
La SCR s’obtient soit par simple différence ou en remplaçant la moyenne générale par la moyenne des
groupes.
nj
k X
X
SCR = SCT − SCF = (yij − yi )2
i=1 j=1
Calcul des variances factorielle et résiduelle. Après avoir calculé les sommes des carrés factoriels
et résiduels, il est nécessaire de calculer les variances de ces deux sources de variations. La variance n’est
rien d’autre que la somme des carrés divisée par son nombre de degrés de liberté (degrees of freedom en
anglais). En pratique, le nombre de degrés de liberté de la part factorielle est k − 1, et celui de la part
résiduelle est N − k.
Les variances calculées ici sont aussi appeleés carrés moyens (CM), ou mean squares en anglais.
SCF SCR
CMF = CMR =
k−1 N −k
Test statistique de l’ANOVA. Le test statistique associé à l’ANOVA à un facteur est un test F
de Fisher qui compare le rapport des deux variances définies ci-dessus.
16 | 19
BST0801 – Cours
Sous certaines hypothèses (voir plus bas), la statistique du test F suit un loi de Fisher à k − 1 et
N − k degrès de liberté.
SCF
k−1
Fk−1,N −k = SCR
N −k
Si la valeur calculée de F est supérieure à la valeur seuil théorique selon la distribution de Fisher, avec
un risque alpha donné (5% en général), cela signifie que le test est significatif. Dans ce cas, la variabilité
factorielle est significativement supérieure à la variabilité résiduelle (ou au bruit). Et on conclut que les
moyennes sont globalement différentes.
Hypothèses de l’ANOVA à un facteur. Les hypothèses nulle et alternative de l’ANOVA à un
facteur sont :
H0 “µ1 = µ1 = ... = µk ”
H1 “∃(i, j) tels que µi 6= µj ”
Bien que cela ne soit pas complètement intuitif aux premiers abords, l’ANOVA est un modèle de
régression linéaire qui fait l’hypothèse d’une moyenne par modalité du facteur étudié. Il s’écrit yij = yi +eij .
Dans cette expression, les eij correspondent aux résidus (écarts entre les observations et les moyennes
des groupes auxquels elles sont relatives). Ce sont sur ces résidus que sont évaluées les hypothèses de
validité du test F (voir plus bas).
Syntaxe et présentation des résultats. Dans R, la syntaxe de l’ANOVA est aov(donnees ~
facteur) ou lm(donnees ~ facteur). Les deux syntaxes sont équivalentes. Les résultats de l’ANOVA à
un facteur sont généralement présentés dans une table d’analyse de variance, comme ceci :
Le test paramétrique de l’ANOVA est soumis à des conditions très strictes pour les résultats du test F
soient valides :
— les résidus doivent être indépendants
— les résidus doivent suivre une loi normale de moyenne 0 et de variance égale à la variance résiduelle
— les résidus doivent être homogènes en variance
Indépendance des résidus. L’indépendance des résidus signifie que les résidus ne doivent pas être
corrélés entre eux. Par exemple, il ne doit pas avoir de lien entre un résidu et celui de la donnée suivante,
ou précédente. On peut voir cet effet quand les données sont répétées sur des sujets identiques. On parle
alors d’autocorrélation des résidus. De la même façon, les résidus ne doivent pas être corrélés au facteur
étudié (voir TD).
L’absence d’autocorrélation se valide par l’étude du plan expérimental : pour réaliser une ANOVA à
un facteur, il ne doit pas avoir de données répétées. Si c’est le cas, il faut utiliser un autre type de modèle,
comme un modèle linéaire à effet mixte (ce qui n’est pas au programme de ce cours).
Il est aussi possible de faire un test de Dubin-Watson (fonction durbinWatsonTest() du package
car) dont l’hypothèse nulle spécifie que le coefficient d’autocorrélation est nul, alors que l’hypothèse
17 | 19
BST0801 – Cours
alternative spécifie qu’il ne l’est pas. On conclut à l’absence d’autocorrélation lorsque la p-value du test
est supérieure à 0,05.
L’absence de corrélation entre les résidus et le facteur étudié se vérifie aussi de façon visuelle par un
graphe des résidus par rapport aux valeurs ajustées (voir TD).
Normalité des résidus. L’hypothèse de normalité des résidus se vérifie généralement par un QQplot
et/ou un test de Shapiro-Wilk (voir TD).
Homogénéité des variances L’hypothèse d’homogénéité des variances, c’est-à-dire l’hypothèse que
les résidus ont une variance constante, peut s’évaluer graphiquement ou à l’aide d’un test statistique.
La méthode graphique consiste à représenter les résidus standardisés en fonction des valeurs prédites. Il
faut alors que les dispersions des résidus (leurs écartements verticaux) relatives à chaque modalité de
traitement sont globalement identiques (voir TD).
On peut également utiliser le test de Bartlett (ou le test de Levene, ou le test de Fligner-Killeen).
Les hypothèses nulles de ces tests spécifient que les variances des différents groupes sont globalement
identiques. A l’inverse, leurs hypothèses alternatives spécifient qu’au moins 2 variances sont différentes.
Pour accepter l’hypothèse d’homogénéité des résidus, il est donc nécessaire d’obtenir une p-value plus
grande que 0,05. La syntaxe de ce test est bartlett.test(residuals~facteur).
Tests post-hoc
Les tests post-hoc ou tests de comparaison multiples sont réalisés quand l’ANOVA indique une p-value
plus petite que 0,05. Cel&a signifie en effet qu’une des moyennes au moins n’est pas égale aux autres
mais on ne sait pas laquelle. L’objet de ces tests est de le déterminer.
Augmentation du risque α global. Comme vu dans la partie I, le fait de faire des tests multiples
au même risque d’erreur doit donner lieu à un ajustement des p-values. Les tests post-hoc sont une
situation typique où il faut procéder à ce type de correction.
Comparaisons deux à deux ou test de Tukey. Ce test compare de façon exhaustive les données
deux-à-deux. Si anova est le résultat d’un test ANOVA, il est réalisé comme suit et on peut ici visualiser
graphiquement les résultats des estimations de différences.
Comparaisons au témoin ou test de Dunnett. Dans ce test, les données issues d’une modalité
seront comparées systématiquement à la modalité définie comme étant la modalité de référence. Dans R,
par défaut, la modalité de référence est la première dans l’ordre alphabétique. On peut la visualiser en
utilisant la fonction levels(). Si celle-ci ne correspond pas à la référence souhaitée, il convient de la
définir en utilisant la fonction relevel(). Par exemple, si on désire définir l’espèce versicolor comme
l’espèce de référence dans la base iris, il faut faire :
Ceci fait, les comparaisons sont ensuite faites en utilisant la fonction DunnettTest() du package
DescTools. Cette fonction s’applique aux vecteurs de données de l’ANOVA. Il est possible de représenter
les comparaisons graphiquement.
18 | 19
BST0801 – Cours
Si l’hypothèse de normalité et/ou l’hypothèse d’homogénéité des résidus est rejetée, deux solutions
simples peuvent être appliquées.
La première est l’utilisation d’une ANOVA non paramétrique, aussi appelée test de Kruskall-Wallis.
Dans ce cas, les comparaisons multiples (toutes les moyennes deux à deux, ou toutes les moyennes vs
la moyenne du groupe contrôle) sont alors réalisées avec des tests de Wilcoxon (qui sont des test non
paramétriques) avec un ajustement des p-values.
L’autre solution envisageable est une ANOVA par un test de permutation. Les comparaisons multiples
étant réalisées comme précédemment, à l’aide de tests de Wilcoxon. Les tests par permutations sont des
variantes des tests classiques. Ils ne seront pas expliqués dans ce cours.
Test de Kruskal-Wallis. Ce test est réalisé en utilisant la fonction kruskal.test() dont la syntaxe
est identique sur le principe à celle de la fonction aov(). Si la p-value indique que l’hypothèse d’égalité des
moyennes doit être rejetée, il convient alors de procéder à des tests post-hoc de comparaisons multiples
en utilisant la fonction pairwise.wilcox.test() dont un des arguments (p.adjust.method =) est la
méthode d’ajustement des p-values. Ici encore, on privilégiera la méthode de Holm.
Par défaut, le test de comparaisons multiples utilisé est un test de Tukey (comparaison 2 à 2). Il est
cependant possible d’utiliser la méthode de Dunnett de comparaison à un témoin (voir TD).
ANOVA par tests de permutation. Lorsque les hypothèses de normalité et/ou d’homogénéité
sont rejetées, une autre solution envisageable est le recours à un test de permutation. Pour ce faire, on
doit utiliser la fonction aovp() du package lmPerm. La syntaxe de cette fonction est la même que celle de
l’ANOVA classique.
19 | 19