Choix du test statistique
Ce chapitre présente les principaux tests statistiques et leurs domaines d'application. Il existe des tests statistiques pour tous les types de comparaisons imaginables. Tout test statistique part de l'hypothèse nulle. Lorsqu'on compare la moyenne de deux groupes, l'hypothèse nulle consiste à supposer qu'il n'existe aucune différence entre les groupes. Lorsqu'on examine, au moyen d'une régression, si un facteur prédictif (par exemple la pression artérielle) influe sur un critère de jugement (par exemple le décès), on dispose également d'une hypothèse nulle, qui consiste à supposer que la pression artérielle n'est pas associée au décès (c'est-à-dire que le coefficient de régression de la pression artérielle = 0). Pour déterminer quel test statistique convient, il faut donc tenir compte de la nature des variables et de leurs relations. On distingue les variables continues et les variables catégorielles.
Une variable catégorielle (également appelée nominale) comporte au moins deux catégories (également appelées niveaux). Le sexe est une variable catégorielle qui comporte (le plus souvent dans les études cliniques) deux niveaux, à savoir homme et femme. L'origine ethnique est également une variable catégorielle, dont les catégories peuvent être par exemple Sud-Américain, Suédois, Asiatique, Nord-Américain, etc. Dans le cas du sexe et de l'origine ethnique, il n'existe aucun ordre entre les catégories (c'est-à-dire qu'on ne peut pas classer naturellement les catégories par ordre croissant ou décroissant). Il existe toutefois des variables catégorielles qui possèdent un ordre naturel ; une telle variable est dite ordinale. Le niveau d'études est un exemple de variable catégorielle ordinale : il peut être classé en niveau faible, moyen ou élevé. Certaines variables ordinales sont en outre de type intervalle, ce qui signifie que l'écart entre les différentes catégories est constant. On peut par exemple créer des catégories de revenu (revenu mensuel) en formant les groupes : 15000-20000, 20000-25000, 25000-30000, etc.
Une variable continue correspond en règle générale à une valeur mesurée ou à une autre valeur numérique. L'âge en années, le poids corporel en kilogrammes et la distance en mètres sont tous des variables continues. D'un certain point de vue, la variable continue ressemble à une variable d'intervalle, puisque l'écart entre deux valeurs successives est toujours le même. De fait, une variable d'intervalle comportant un grand nombre de niveaux peut être considérée comme une variable continue.
Les tests statistiques et les modèles de régression reposent sur des hypothèses mathématiques. La validité du test ou du modèle dépend du respect de certaines de ces hypothèses. Une hypothèse fréquente porte sur la distribution de la variable, puisque la plupart des tests comparent en réalité des distributions. Comparer la moyenne de deux groupes revient en fait à comparer leurs distributions.
Hypothèse de normalité pour les variables continues
Le test t et l'ANOVA (analyse de la variance) n'exigent pas que les valeurs des observations individuelles de l'échantillon suivent une loi normale. Ces tests exigent en revanche que les moyennes elles-mêmes suivent une loi normale, au sens où, si l'on prélève de nombreux échantillons et que l'on calcule la moyenne de chacun, ces moyennes doivent être distribuées normalement. Une manière de s'assurer que les moyennes suivent une loi normale consiste à vérifier si les observations individuelles de l'échantillon présentent une distribution normale. Par ailleurs, quelle que soit la distribution sous-jacente, les moyennes tendent de toute façon vers une loi normale à mesure que la taille de l'échantillon augmente. Avec plus de 30 observations, on peut supposer que la normalité est respectée. (Pour plus de détails, le lecteur pourra se reporter au théorème central limite.)
Pour une régression fondée sur la méthode des MCO (moindres carrés ordinaires), les résidus doivent suivre une loi normale. Si la variable dépendante et les facteurs prédictifs suivent tous une loi normale, cela garantit (presque) la normalité des résidus. Notez toutefois que ni la variable dépendante ni les facteurs prédictifs n'ont besoin d'être distribués normalement pour que les résidus le soient.
Choix du test statistique : 3 variables ou plus
graph TD
V(3 variables ou plus) ---> K1(Variable dépendante continue) & K2(Variable dépendante catégorielle)
K1 ---> ML(Régression multiple)
K2 ---> Två(Variable dépendante à 2 catégories) ---> LR(Régression logistique)
K2 ---> Tre(Variable dépendante à 3 catégories ou plus) ---> MR(Régression logistique multinomiale)Choix du test statistique : 1 variable
graph TD
V(1 variable) ---> Kategorisk(Catégorielle) & Kontinuerlig(Continue)
Kategorisk ---> Two1(2 groupes) ---> One(Test d'une proportion)
Kategorisk ---> Two2(>2 groupes) ---> Ki(Test d'adéquation du khi-deux)
Kontinuerlig ---> P1(Paramétrique) ---> X("Test t de Student à un échantillon")
Kontinuerlig ---> P2(Non paramétrique) ---> Y("Test de Wilcoxon à un échantillon")Choix du test : 2 variables continues
graph LR;
TwoVar(2 variables)
TwoVar ---> TwoQuant(2 quantitatives) ---> Parametrisk(Paramétrique) ---> Pear(Corrélation de Pearson)
TwoQuant(2 quantitatives) ---> Icke-parametrisk(Non paramétrique) ---> Spear(Corrélation des rangs de Spearman)
TwoVar ---> 1Q1C(1 continue et 1 catégorielle) ---> TwoGroups(Deux groupes) ---> Paired1(Échantillons appariés) ---> Parametric1(Paramétrique) ---> Stud1(Test t de Student pour échantillons appariés)
Paired1 ---> NParametric1(Non paramétrique) ---> Wilcox1(Test des rangs signés de Wilcoxon)
TwoGroups ---> OS1(Échantillons indépendants) ---> Parametric2(Paramétrique) & NParametric2(Non paramétrique)
NParametric2 ---> MW1(Test U de Mann-Whitney)
Parametric2 ---> EPV1(Variances égales dans les populations) & UPV1(Variances inégales dans les populations)
EPV1 ---> Stud2(Test t de Student pour 2 échantillons indépendants)
UPV1 ---> Welch2(Test t de Welch pour 2 échantillons indépendants)
1Q1C ---> TreGrupper(>2 groupes)
TreGrupper ---> OS(Échantillons indépendants) & PS(Échantillons appariés)
OS ---> NParametric3(Non paramétrique) ---> KW(Test de Kruskal-Wallis)
OS ---> Parametric3(Paramétrique) ---> EPV2(Variances égales dans les populations) & UPV2(Variances inégales dans les populations)
EPV2 ---> OWA(ANOVA à un facteur)
UPV2 ---> WA(ANOVA de Welch)
PS ---> PO(Paramétrique) ---> RA(ANOVA à mesures répétées)
PS ---> IPO(Non paramétrique) ---> FT(Test de Friedman)
TwoVar ---> TvåKvalitativa(2 qualitatives)
TvåKvalitativa ---> TyK(2 groupes pour chaque variable)
TyK ---> PS3(Échantillons appariés) ---> TPS(Deux échantillons appariés) & 3PO(3 échantillons appariés ou plus)
TPS ---> MT(Test de McNemar)
3PO ---> Coq(Test Q de Cochran)
TyK ---> OS3(Échantillons indépendants)
OS3 ---> ef(Effectifs attendus <5) ---> Fisch(Test exact de Fisher)
OS3 ---> ef2(Effectifs attendus >=5) ---> Chi(Test d'indépendance du khi-deux)
TvåKvalitativa ---> YT(Plus de 2 groupes pour au moins 1 variable) ---> Chi(Test d'indépendance du khi-deux)Test t à un échantillon
Comme son nom l'indique, ce test s'utilise lorsqu'on dispose d'un seul groupe sur lequel on souhaite effectuer une comparaison. Il permet de déterminer si une moyenne diffère d'une valeur théorique. Si l'on mesure la taille des élèves d'une classe et que l'on constate une taille moyenne de 180 cm, on peut tester si cette moyenne diffère de la valeur de 175 cm (qui est donc une valeur théorique).
Dans R, la fonction t.test permet de réaliser un test t à un échantillon. Nous allons maintenant vérifier si l'âge moyen des patients atteints d'un cancer du poumon, dans un jeu de données classique de R, diffère d'une valeur théorique :
## Installer le package contenant les données
install.packages(&amp;amp;amp;amp;amp;quot;survival&amp;amp;amp;amp;amp;quot;)
library(survival)
## Charger la table des données patients
data(lung)
## Afficher la table des données patients
View(lung)
## Examiner l'âge moyen
mean(lung$age)
## Tester si l'âge moyen diffère de la valeur théorique 60.
t.test(lung$age, mu = 60)Nous obtenons une valeur p de 0,0000642, ce qui signifie que la moyenne des patients diffère de 60. Le test t à un échantillon convient aux variables distribuées normalement et mesurées sur une échelle d'intervalle.
Test de la médiane à un échantillon
Ce test correspond au test précédent, mais c'est ici la médiane qui est examinée. Dans ce cas, il suffit de supposer que la variable est mesurée sur une échelle ordinale. Dans R, la fonction wilcox.test permet de réaliser un test de la médiane à un échantillon. En voici un exemple :
## Tester si la médiane de l'âge diffère de 60
wilcox.test(lung$age, mu = 60)Test binomial
Le test binomial s'utilise pour les variables catégorielles à deux niveaux. Il permet de déterminer si une proportion observée dans l'échantillon diffère d'une proportion théorique. Dans R, la fonction prop.test permet de réaliser un test binomial. Dans l'exemple ci-dessous, nous allons vérifier si la proportion de femmes dans le même jeu de données que précédemment (lung) est égale à 0,5 (c'est-à-dire si les femmes représentent la moitié de l'ensemble des patients).
## À l'aide de la fonction ifelse, nous créons une nouvelle variable appelée kvinna (femme). Cette variable prend la valeur 1 si la variable sex = 2 (femme), et la valeur 0 sinon (homme).
lung$kvinna <- ifelse(lung$sex==2, 1, 0)
## Nous allons maintenant tester si la proportion de femmes est de 0.5 (c'est-à-dire si la moitié sont des femmes)
prop.test(sum(lung$kvinna), length(lung$kvinna), p = 0.5)Test d'adéquation du khi-deux
Le test d'adéquation du khi-deux (chi-square goodness of fit) est une extension du test binomial, au sens où il permet de tester une variable comportant plus de 2 catégories. On peut ainsi tester si la répartition des types de cancer diffère d'une valeur théorique. Supposons que la variable type de cancer comporte les quatre niveaux suivants : cancer du poumon, cancer du côlon, cancer du rein et cancer du foie. Notre hypothèse est que la répartition entre ces quatre types est uniforme, chacun représentant 25 %. La valeur attendue (expected) pour chaque catégorie est donc de 25 % (0,25). Pour le tester, on utilise la fonction chisq.test dans R de la manière suivante :
## Dans cet exemple, les observations proviennent de la table data et la variable s'appelle cancertyp.
## Nous allons tester si chaque type de cancer représente une part égale de l'ensemble des cancers. La base de données comporte quatre types de cancer, chaque type représente donc 25 % selon notre hypothèse.
chisq.test(table(data$cancertyp), p = c(0.25, 0.25, 0.25, 0.25))Test t pour échantillons indépendants
Ce test s'utilise pour comparer les moyennes de deux groupes indépendants l'un de l'autre. Indépendant signifie que les groupes ne doivent pas s'influencer mutuellement. Prenons deux exemples pour clarifier ce point :
- Si l'on pèse un certain nombre de patients avant et après un traitement chirurgical de l'obésité, on dispose de deux valeurs à comparer, à savoir le poids avant et le poids après le traitement. Dans ce cas, toutefois, le poids avant et après traitement ne sont pas indépendants, puisque ce sont les mêmes personnes qui figurent dans les deux distributions. On utilise alors le test t pour échantillons appariés (dependent samples t-test).
- Si l'on souhaite comparer la taille des hommes et des femmes à l'université de Göteborg, on dispose également de deux moyennes à comparer. Ces moyennes ne dépendent toutefois pas l'une de l'autre, et l'on utilise alors le test t pour échantillons indépendants (independent samples t-test).
Dans le même jeu de données que précédemment, nous comparons maintenant l'âge des hommes et des femmes.
t.test(lung$age ~ lung$sex)La valeur p est de 0,06394, ce qui est supérieur à 0,05 ; nous ne pouvons donc pas affirmer avec certitude qu'il existe une différence d'âge. Nous effectuons un autre test en comparant l'apport calorique de l'alimentation.
t.test(lung$meal.cal ~ lung$sex)Dans ce cas, la valeur p était de 0,01989, ce qui indique une différence statistiquement significative d'apport calorique entre les hommes et les femmes.
Test de Wilcoxon-Mann-Whitney
Ce test s'utilise dans la même situation que le test t pour échantillons indépendants, à la différence que le test de Wilcoxon-Mann-Whitney ne suppose pas que la variable suit une loi normale. Il suppose en revanche que la variable est mesurée sur une échelle ordinale. Pour comparer de la même manière l'âge des hommes et des femmes, on écrit dans R :
wilcox.test(lung$meal.cal ~ lung$sex)Test du khi-deux (test du chi carré, test χ2)
Le test du khi-deux s'utilise pour étudier deux variables catégorielles. Il repose sur la comparaison des effectifs observés (pour les niveaux de chaque variable) avec les effectifs attendus. On teste l'hypothèse selon laquelle les effectifs observés sont (plus ou moins) équivalents aux effectifs attendus. Supposons, par exemple, que l'on cherche à savoir si autant d'hommes que de femmes font un infarctus du myocarde, en utilisant la variable sexe, qui est dichotomique (homme ou femme), ainsi que la variable infarctus du myocarde (oui ou non). Si l'hypothèse nulle est que la proportion d'hommes et de femmes qui font un infarctus est la même, on s'attend à observer autant d'hommes que de femmes dans les deux niveaux de la variable infarctus du myocarde.
Le test du khi-deux peut être illustré par un tableau. Nous étudions au total 40 personnes ayant fait un infarctus du myocarde.
| Sexe | O | E | (O-E)2 | ((O-E)2) / E |
|---|---|---|---|---|
| Homme | 32 | 20 | 144 | 144/20 |
| Femme | 8 | 20 | 144 | 144/20 |
| Total | 40 | 40 | 288/20=14,4 |
La valeur de χ2 est ici de 14,4. Pour savoir si elle est statistiquement significative, il faut rechercher la valeur 14,4 avec 1 degré de liberté dans une table du khi-deux. Le nombre de degrés de liberté correspond au nombre de niveaux de la variable sexe (=2) moins 1, soit 2–1, ce qui donne 1. La table indique la valeur critique pour le χ2 considéré et le nombre de degrés de liberté ; si χ2 est supérieur à la valeur critique, l'hypothèse nulle est rejetée. Notez que tous les logiciels de statistique effectuent ces calculs automatiquement et renvoient une valeur p pour l'hypothèse nulle. Enfin, et ce n'est pas le moins important, il convient de préciser que le test du khi-deux suppose au moins 5 observations attendues dans chaque cellule du tableau croisé ci-dessus (tableau 1). Si l'effectif d'une cellule est <5, il convient d'utiliser plutôt le test exact de Fisher.
Notez que les variables incluses dans un test du khi-deux peuvent comporter plus de deux niveaux, et que les deux variables n'ont pas nécessairement le même nombre de niveaux.
Dans l'exemple suivant, nous vérifions si autant d'hommes que de femmes sont décédés dans l'étude sur le cancer du poumon :
chisq.test(table(lung$sex, lung$status))Test exact de Fisher
Le test exact de Fisher est équivalent au test du khi-deux, mais s'utilise lorsqu'une cellule contient moins de 5 observations attendues. Le test exact de Fisher peut être utilisé quel que soit le nombre d'observations attendues, aussi faible soit-il. Le code R correspondant est le suivant :
fisher.test(table(lung$sex, lung$status))ANOVA à un facteur
ANOVA à un facteur (analyse de la variance à un facteur, one-way ANOVA)
L'ANOVA à un facteur s'utilise lorsqu'on dispose d'une variable indépendante catégorielle (à deux niveaux ou plus) et d'une variable dépendante continue distribuée normalement (sur une échelle d'intervalle). On compare donc ici si la distribution de la variable continue est la même dans les différents niveaux de la variable catégorielle. On pourrait par exemple comparer si le poids corporel est le même dans les différents groupes ethniques d'un lycée.
Dans R, nous utiliserons le jeu de données "bladder", qui figure également dans le package survival. Nous chargeons "bladder" avec la commande "data(bladder)". Trois variantes de "bladder" sont alors chargées, dont nous utiliserons "bladder1". Dans ce jeu de données, nous allons examiner si la taille tumorale initiale diffère selon l'évolution finale. La taille tumorale est décrite par la variable size, qui est une variable continue. L'évolution est décrite par la variable status, où 0 = survie, 1 = récidive du cancer, 2 = décès par cancer et 3 = décès d'une autre cause. La taille tumorale sera donc comparée entre ces quatre groupes.
data(bladder)
summary(aov(bladder1$size ~ bladder1$status))La valeur p est de 0,249, ce qui signifie que nous ne pouvons pas rejeter l'hypothèse nulle (selon laquelle il n'existe aucune différence de taille tumorale initiale). Les tumeurs sont donc de même taille au début de l'étude.
Test de Kruskal-Wallis
Le test de Kruskal-Wallis s'utilise lorsqu'on dispose d'une variable indépendante à deux niveaux ou plus et d'une variable dépendante mesurée sur une échelle ordinale. Ce test ressemble à l'ANOVA à un facteur, mais il est non paramétrique, ce qui signifie que la variable dépendante n'a pas besoin d'être une variable d'intervalle distribuée normalement.
kruskal.test(data$beroende, data$oberoende)Test t apparié (test t pour mesures dépendantes)
Si l'on souhaite comparer deux valeurs dépendantes l'une de l'autre, on peut utiliser le test t apparié (paired t-test). Ce test suppose que la valeur à comparer est distribuée normalement. Les valeurs sont en règle générale dépendantes lorsqu'elles proviennent du même individu, ce qui est le cas lors de mesures effectuées à deux moments différents. Il peut s'agir par exemple de la mesure du poids corporel avant et après un traitement du surpoids.
Le code R suivant sert uniquement à illustrer la fonction dans R. Les données utilisées ne sont en réalité pas dépendantes les unes des autres.
## La variable kroppsvikt (poids corporel) est continue
## La variable mätningens_tidpunkt (moment de la mesure) est une variable dichotomique qui vaut "1" s'il s'agit de la valeur mesurée avant le traitement et "2" s'il s'agit de la valeur après le traitement
t.test(data$kroppsvikt, data$mätningens_tidpunkt, paired = TRUE)Test des rangs signés de Wilcoxon
Il s'agit de l'alternative non paramétrique au test t apparié, utilisée donc lorsqu'on ne peut pas supposer que la variable dépendante est une variable d'intervalle distribuée normalement. Le test suppose toutefois que la variable est au moins ordinale.
wilcox.test(data$beroende_variabel, data$oberoende_variabel, paired = TRUE)Test de McNemar
Le test de McNemar s'utilise lorsqu'on étudie une variable dépendante catégorielle dans deux groupes liés. Ce test est donc l'analogue du test t apparié, mais la variable dépendante est ici catégorielle et comporte deux niveaux. Il permet par exemple de déterminer si la proportion de patients présentant une dépression (oui/non) diffère avant et après une thérapie comportementale.
Pour voir un exemple dans R, tapez : ?mcnemar.test dans la console.
ANOVA à mesures répétées à un facteur
Ce test correspond à l'ANOVA à un facteur (one-way ANOVA), mais il admet ici qu'un même individu contribue à plus d'une mesure (c'est-à-dire qu'il existe des mesures répétées pour le ou les mêmes individus). La variable indépendante est donc catégorielle, à deux niveaux ou plus. La variable dépendante est distribuée normalement sur une échelle d'intervalle. Nous recommandons d'utiliser, à la place de l'ANOVA à mesures répétées à un facteur, des modèles mixtes (modèles à effets aléatoires), qui sont plus efficaces.
Corrélation
Ce sujet a été traité dans le chapitre consacré à la corrélation et la régression.
Régression linéaire simple et régression multiple
Ce sujet a été traité dans le chapitre consacré à la régression linéaire simple ainsi qu'à la régression (linéaire) multiple.
Régression logistique simple et régression logistique multiple
Ce sujet a été traité dans le chapitre consacré à la régression logistique.
Analyse de la covariance (ANCOVA)
L'ANCOVA est équivalente à l'ANOVA, mais elle inclut ici, en plus d'un facteur prédictif catégoriel, un facteur prédictif continu. L'ANCOVA peut donc être remplacée par une régression multiple.
Références
Ce qui précède est dans une large mesure un résumé du guide de l'IDRE pour le choix d'un test.