Tests Statistiques et Hypothèses

Test de Normalité dans R

Bon nombre des méthodes statistiques, notamment les tests de corrélation, de régression, les tests t et l’analyse de variance, supposent que les données suivent une distribution normale ou une distribution gaussienne. Ces tests sont appelés tests paramétriques, car leur validité dépend de la distribution des données.

La normalité et les autres hypothèses faites par ces tests doivent être prises au sérieux pour tirer une interprétation et des conclusions fiables de la recherche.

Avec des échantillons suffisamment grands (> 30 ou 40), il y a de bonnes chances que les données soient distribuées normalement ; ou au moins assez près de la distribution normale pour que vous puissiez vous en tirer avec des tests paramétriques, comme le test t-test (théorème central limite).

Dans ce chapitre, vous apprendrez comment vérifier la normalité des données dans R par inspection visuelle (graphique QQ plot et distributions de densité) et par des tests de statistiques (test de Shapiro-Wilk).



Sommaire:

Livre Apparenté

Pratique des Statistiques dans R II - Comparaison de Groupes: Variables Numériques

Prérequis

Assurez-vous d’avoir installé les paquets R suivants:

  • tidyverse pour la manipulation et la visualisation des données
  • ggpubr pour créer facilement des graphiques prêts à la publication
  • rstatix offre des fonctions R facilitant les analyses statistiques

Commencez par charger les paquets:

library(tidyverse)
library(ggpubr)
library(rstatix)

Données de démonstration

Nous utiliserons le jeu de données ToothGrowth. Inspectez les données en affichant quelques lignes aléatoires par groupes:

set.seed(1234)
ToothGrowth %>% sample_n_by(supp, dose, size = 1)
## # A tibble: 6 x 3
##     len supp   dose
##   <dbl> <fct> <dbl>
## 1  21.5 OJ      0.5
## 2  25.8 OJ      1  
## 3  26.4 OJ      2  
## 4  11.2 VC      0.5
## 5  18.8 VC      1  
## 6  26.7 VC      2

Exemples de formes de distribution

  • Distribution normale

  • Distributions asymériques

Vérifier la Normalité dans R

Question : Nous voulons tester si la variable len (longueur des dents) est normalement distribuée.

Méthodes visuelles

Les courbes de densité et le Q-Q plot peuvent être utilisées pour vérifier visuellement la normalité.

  1. Diagramme de densité : le diagramme de densité permet de juger visuellement si la distribution est en forme de cloche.
  2. QQ plot : Le QQ plot (ou quantile-quantile plot) établit la corrélation entre un échantillon donné et la distribution normale. Une ligne de référence de 45 degrés est également tracée. Dans un QQ plot, chaque observation est tracée sous la forme d’un point unique. Si les données sont normales, les points doivent former une ligne droite.
library("ggpubr")
# Diagramme de densité
ggdensity(ToothGrowth$len, fill = "lightgray")
# QQ plot
ggqqplot(ToothGrowth$len)

Comme tous les points se situent approximativement le long de cette ligne de référence, nous pouvons supposer une normalité.

Le test de normalité de Shapiro-Wilk

L’inspection visuelle, décrite dans la section précédente, n’est généralement pas fiable. Il est possible d’utiliser un test de significativité comparant la distribution de l’échantillon à une distribution normale afin de déterminer si les données montrent ou non un écart important par rapport à la distribution normale.

Il existe plusieurs méthodes pour évaluer la normalité, notamment le test de normalité de Kolmogorov-Smirnov (K-S) et le test de Shapiro-Wilk.

L’hypothèse nulle de ces tests est que “la distribution de l’échantillon est normale”. Si le test est significatif, la distribution est non-normale.

La méthode de Shapiro-Wilk est largement recommandée pour les tests de normalité et fournit une meilleure puissance que K-S. Il est basé sur la corrélation entre les données et les scores normaux correspondants (Ghasemi and Zahediasl 2012).

Notez que le test de normalité est sensible à la taille de l’échantillon. Les petits échantillons passent le plus souvent les tests de normalité. Il est donc important de combiner l’inspection visuelle et le test de significativité statistique afin de prendre la bonne décision.

La fonction R shapiro_test() [package rstatix] fournit un environnement convivial pour le calcul du test de Shapiro-Wilk pour une ou plusieurs variables. Il prend également en charge les données groupées. C’est un emballage autour de la fonction de base R shapiro.test().

  • Test de Shapiro pour une variable:
ToothGrowth %>% shapiro_test(len)
## # A tibble: 1 x 3
##   variable statistic     p
##   <chr>        <dbl> <dbl>
## 1 len          0.967 0.109

Du résultat ci-dessus, la p-value > 0,05 indiquant que la distribution des données n’est pas significativement différente de la distribution normale. En d’autres termes, nous pouvons supposer que la normalité.

  • Test de Shapiro pour les données groupées:
ToothGrowth %>%
  group_by(dose) %>%
  shapiro_test(len)
## # A tibble: 3 x 4
##    dose variable statistic     p
##   <dbl> <chr>        <dbl> <dbl>
## 1   0.5 len          0.941 0.247
## 2   1   len          0.931 0.164
## 3   2   len          0.978 0.902
  • Test de Shapiro pour plusieurs variables:
iris %>% shapiro_test(Sepal.Length, Petal.Width)
## # A tibble: 2 x 3
##   variable     statistic            p
##   <chr>            <dbl>        <dbl>
## 1 Petal.Width      0.902 0.0000000168
## 2 Sepal.Length     0.976 0.0102

Résumé

Ce chapitre décrit comment vérifier la normalité d’une donnée en utilisant le QQ-plot et le test de Shapiro-Wilk.

Notez que, si la taille de votre échantillon est supérieure à 50, le graphique de normalité QQ plot est préféré parce qu’avec des échantillons de plus grande taille, le test de Shapiro-Wilk devient très sensible même à un écart mineur par rapport à la distribution normale.

Par conséquent, nous ne devrions pas nous fier à une seule approche pour évaluer la normalité. Une meilleure stratégie consiste à combiner l’inspection visuelle et le test statistique.

References

Ghasemi, Asghar, and Saleh Zahediasl. 2012. “Normality Tests for Statistical Analysis: A Guide for Non-Statisticians.” Int J Endocrinol Metab 10 (2): 486–89. doi:10.5812/ijem.3505.



Version: English

(Next Lesson) Test d’Homogénéité des Variances dans R
Back to Tests Statistiques et Hypothèses

No Comments

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments

Teacher
Alboukadel Kassambara
Role : Fondateur de Datanovia
Read More