Les tests statistiques

Nous allons parler de quelques tests statistiques simples à utiliser et très utiles, je dirais même indispensables ! Et bien entendu, en guise de mise en bouche, nous commencerons par rappeler ce qu’est un test statistique 😀

Test statistique : késako ?

Un test stat ?

Un test statistique permet d’estimer une valeur inconnue. Par exemple : vous connaissez la taille de 20 personnes tirées au hasard dans une population de 100 et vous souhaitez estimer la taille moyenne de la population, à partir de celle mesurée dans votre échantillon.

Vous vous en doutez, un test statistique ne permet pas d’être sûr à 100 % de quelque chose (la moyenne est égale à tant, la médiane se trouve entre là et là…). Il y a toujours des erreurs possibles dues à des biais dans l’échantillon. C’est pour ça qu’on parle d’une estimation (eh oui, en statistiques, rien n’est jamais sûr à 100%).

Car au final, si vous voulez une certitude de 100%, il faudra mesurer la taille de la totalité des personnes de la population (et dans ce cas pas besoin de statistiques). Lorsque l’on ne peut pas, pour des raisons logistiques, financières ou matérielles, tout mesurer, les statistiques sont là pour généraliser les résultats trouvés dans un échantillon. C’est ce qu’on appelle une inférence.

Mais pour quoi faire ?

Tester des hypothèses

Le but d’un test statistique est de…tester ! En fait, souvent, il s’agit de tester (et trouver !) des effets : l’effet d’un médicament sur la santé, l’effet d’un ingrédient dans une recette… On chercher à tester une hypothèse formulée sur les données de l’échantillon pour inférer sur la population. Cette hypothèse porte le joli nom d’hypothèse nulle ou initiale H0. Si le test est positif – on dit qu’il est significatif – cela signifie que l’hypothèse nulle a été mise à l’épreuve des données et jugée non recevable, elle a été rejetée. Et si l’on décide que l’hypothèse nulle ne tient plus la route, c’est pour adopter l’hypothèse alternative H1.

Dans les tests classiques, la formulation de l’hypothèse nulle H0 et de l’hypothèse alternative H1 dépend du test que l’on s’apprête à réaliser. Par exemple, le propre du test de Student est de vérifier si la distribution des données suit une loi de Student. Vous ne savez pas qui est Student ? Ne partez pas, le test est décrit un peu plus bas. L’hypothèse nulle est dans ce cas “les données suivent une loi de Student” et l’hypothèse alternative “les données ne suivent pas une loi de Student”. Si le test est significatif, l’hypothèse nulle est écartée au profit de l’hypothèse alternative. Si le test n’est pas significatif; l’hypothèse nulle est n’est pas rejetée.

Attention ! Si le test n’est pas significatif et que l’hypothèse nulle est “conservée”, cela ne signifie pas pour autant que cette dernière est validée et qu’elle doit être tenue pour “vraie”. En effet, ce n’est pas parce que nous n’avons pas été en mesure de prouver qu’un effet existe, qu’il n’existe pas. En d’autres mots, il faut se doter des moyens expérimentaux nécessaires pour détecter des effets si on pense qu’ils existent (en faisant attention à la taille de l’échantillon, on se dotant d’appareils de mesures adéquats…). Faute de quoi on ne peut rien conclure de particulier sinon que notre dispositif est peut-être inadapté.

Prendre position

Lorsque que l’on dit que le test est ou n’est pas significatif, on prends position. Décider, c’est prendre des risques. Dans un test statistique cette prise de risque fait référence à une valeur seuil déterminée par alpha et la statistique de test calculée, on reviendra à la statistique de test plus loin.

Il existe deux façons de se tromper lorsqu’on décide à l’issue d’un test :

  • L’erreur de première espèce, nommée alpha, c’est rejeter l’hypothèse nulle H0 alors qu’elle est vraie.
  • L’erreur de deuxième espèce, nommée bêta, c’est ne pas rejeter l’hypothèse nulle H0 alors qu’elle est fausse.

Alpha est fixé par nos soins. En clair, c’est nous qui fixons les règles du jeu et la prise de risque que nous nous accordons pour prendre les décisions.

Souvent, alpha est fixé à 0,05, c’est-à-dire qu’on admet que dans 5% des cas, on rejette l’hypothèse nulle alors qu’elle est vraie. 5% correspond à 1 chance sur 20, à vous de décider de la pertinence d’un tel seuil au regard des décisions à prendre…“Si je laisse le chat monter sur la table, il y a 1 chance sur 20 que ma tasse tombe”….moui, ok. “Si je traverse la rue, j’ai 1 chance sur 20 de me faire écraser par un bus”…ah. Sans façons, merci. Bêta n’est pas fixé mais dépend d’alpha et de la taille de l’échantillon n. Quand on veut augmenter la précision de notre test (donc diminuer alpha), pour une même taille d’échantillon, bêta augmente, donc on rejette moins souvent l’hypothèse nulle même lorsqu’elle est fausse !
Tout est affaire de compromis entre le besoin et ce que l’on a comme données…

Une dernière information avant de passer aux tests à proprement parlé, la puissance du test est calculée par 1-bêta. Si un test s’avère non significatif, il est utile de calculer la puissance de test pour se faire une idée d’à quel point il était difficile de détecter un effet s’il en existait un.

Tests statistiques : quelques exemples

Le test de Shapiro

Le test de Shapiro permet de tester si les données de l’échantillon proviennent d’une population avec une distribution gaussienne (ou normale). L’hypothèse nulle est que la population est normalement distribuée.

Pour l’exemple nous allons utiliser le jeu de données trees qui concerne 31 cerisiers noirs abattus.

shapiro.test(trees$Height)
## 
##  Shapiro-Wilk normality test
## 
## data:  trees$Height
## W = 0.96545, p-value = 0.4034

Dans la sortie, ce qui nous intéresse est la p-value qui est largement au dessus de 0,05. Au seuil 5% de se tromper, on ne peut pas rejeter l’hypothèse que les données suivent une loi normale. Il est donc probable que les données soient issues d’une population dont la distribution est normale.

Le test de Student

Le test de Student permet de se prononcer sur le fait que les données suivent une loi de Student (là vous devez vous dire, “oui et alors ?” ). Disons-le d’emblée, Student n’est pas une personne mais le pseudonyme de William Gosset, le premier à avoir théoriser la chose. Ce test permet d’observer si la moyenne est égale à une valeur donnée ou si les moyennes de deux groupes sont égales. C’est un test de comparaison de moyenne.

Pour utiliser ce test, il faut que les données soient indépendantes (non liées les unes au autres) et qu’elles suivent une loi normale ou puisse être approximées par une loi normale (ce qui est très souvent le cas lorsque qu’il y a assez de données (> 30)).

Nous avons testé précédemment le fait que les données de taille des cerisiers noirs suivent la loi normale, nous pouvons donc appliquer ce test sur ces données.

mean(trees$Height)
## [1] 76
# Regardons si la taille est significativement différente de 78
t.test(trees$Height, mu = 78)
## 
##  One Sample t-test
## 
## data:  trees$Height
## t = -1.7476, df = 30, p-value = 0.09076
## alternative hypothesis: true mean is not equal to 78
## 95 percent confidence interval:
##  73.6628 78.3372
## sample estimates:
## mean of x 
##        76
# et maintenant avec 79 ?
t.test(trees$Height, mu = 79)
## 
##  One Sample t-test
## 
## data:  trees$Height
## t = -2.6214, df = 30, p-value = 0.01362
## alternative hypothesis: true mean is not equal to 79
## 95 percent confidence interval:
##  73.6628 78.3372
## sample estimates:
## mean of x 
##        76

On voit donc que pour un seuil alpha = 0,05 chances de se tromper, la taille moyenne des cerisiers abattus n’est pas significativement différente de 78 mais elle l’est de 79.

Comment lire cette sortie ?

  • t : statistique du test de Student, elle traduit à quel point on s’éloigne de l’hypothèse nulle. Sa valeur est difficilement interprétable sans une table pour la comparer à d’autres.
  • df : degré de liberté, c’est le nombre d’observations moins le nombre de relations entre ces observations.
  • p-value : probabilité que ce que l’on observe soit le simple fait du hasard. La p-value traduit la statistique de test en une valeur interprétable, bornée.
  • 95 percent confidence interval : intervalle de confiance à 95% pour la moyenne de la taille des arbres. 78 est compris dans cet intervalle c’est pour ça que le test dit que la moyenne n’est pas significativement différente de 78. Par contre 79 n’y est pas.

Il est possible de calculer un intervalle où nous sommes sûrs à 99% que la moyenne y soit, dans ce cas il est plus large.

t.test(trees$Height, conf.level = 0.99)
## 
##  One Sample t-test
## 
## data:  trees$Height
## t = 66.41, df = 30, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 99 percent confidence interval:
##  72.85287 79.14713
## sample estimates:
## mean of x 
##        76

Les autres tests…

Pour comparer des effectifs entre deux groupes vous pouvez utiliser le test du Khi2, chisq.test().

Pour des données qui ne suivent pas une loi normale, il préconisé d’utiliser des tests non paramétriques pour comparer des groupes. Par exemple il y a le test de rang de Wilcoxon ou de Man-Whitney, wilcox.test(). Dans ces cas-là, on ne travaille plus directement avec les données qui ont été collectées mais avec leurs rangs, obtenus en triant les valeurs. Ces tests sont très conservateurs, c’est à dire qu’il détectent plus rarement des effets. Cela dit, il vaut mieux un test paramétrique sur une distribution par complètement gaussienne qu’un test non paramétrique.

Bon, vous vous en doutiez sûrement en ouvrant ce billet de blog — on ne fera pas de vous des experts en stats en 1500 mots. L’objectif était plutôt de vous introduire les concepts clés, tout en vous montrant comment quelques-uns fonctionnent dans R. Car, voyez le côté pratique, tous les tests statitiques (ou presque) fonctionnent de la même manière dans R.

En cas de doute, et si l’aide de R n’est pas à la hauteur, n’hésitez pas à nous poser des questions, en commentaire ou par mail !


Commentaires


À lire également