Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment effectuer un test Shapiro-Wilk en Python



Le test de Shapiro-Wilk est un test de normalité. Il est utilisé pour déterminer si un échantillon provient ou non d’unedistribution normale .

Pour effectuer un test Shapiro-Wilk en Python nous pouvons utiliser la fonction scipy.stats.shapiro() , qui reprend la syntaxe suivante :

scipy.stats.shapiro(x)

où:

  • x : un tableau d’exemples de données.

Cette fonction renvoie une statistique de test et une valeur p correspondante.

Si la valeur p est inférieure à un certain niveau de signification, nous disposons alors de preuves suffisantes pour affirmer que les données de l’échantillon ne proviennent pas d’une distribution normale.

Ce didacticiel montre quelques exemples d’utilisation pratique de cette fonction.

Exemple 1 : test de Shapiro-Wilk sur des données normalement distribuées

Supposons que nous disposions des exemples de données suivants :

from numpy.random import seed
from numpy.random import randn

#set seed (e.g. make this example reproducible)
seed(0)

#generate dataset of 100 random values that follow a standard normal distribution
data = randn(100)

Le code suivant montre comment effectuer un test de Shapiro-Wilk sur cet échantillon de 100 valeurs de données pour déterminer si elles proviennent d’une distribution normale :

from scipy.stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9926937818527222, pvalue=0.8689165711402893)

À partir du résultat, nous pouvons voir que la statistique de test est de 0,9927 et la valeur p correspondante est de 0,8689 .

Puisque la valeur p n’est pas inférieure à 0,05, nous ne parvenons pas à rejeter l’hypothèse nulle. Nous ne disposons pas de preuves suffisantes pour affirmer que les données de l’échantillon ne proviennent pas d’une distribution normale.

Ce résultat ne devrait pas être surprenant puisque nous avons généré les exemples de données à l’aide de la fonction randn() , qui génère des valeurs aléatoires qui suivent une distribution normale standard.

Exemple 2 : test de Shapiro-Wilk sur des données non distribuées normalement

Supposons maintenant que nous disposions des exemples de données suivants :

from numpy.random import seed
from numpy.random import poisson

#set seed (e.g. make this example reproducible)
seed(0)

#generate dataset of 100 values that follow a Poisson distribution with mean=5
data = poisson(5, 100)

Le code suivant montre comment effectuer un test de Shapiro-Wilk sur cet échantillon de 100 valeurs de données pour déterminer si elles proviennent d’une distribution normale :

from scipy.stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9581913948059082, pvalue=0.002994443289935589)

À partir du résultat, nous pouvons voir que la statistique de test est de 0,9582 et que la valeur p correspondante est de 0,00299 .

Puisque la valeur p est inférieure à 0,05, nous rejetons l’hypothèse nulle. Nous disposons de suffisamment de preuves pour affirmer que les données de l’échantillon ne proviennent pas d’une distribution normale.

Ce résultat ne devrait pas non plus être surprenant puisque nous avons généré les exemples de données à l’aide de la fonction poisson() , qui génère des valeurs aléatoires qui suivent une distribution de Poisson .

Ressources additionnelles

Les tutoriels suivants expliquent comment effectuer d’autres tests de normalité dans divers logiciels statistiques :

Comment effectuer un test Shapiro-Wilk dans R
Comment effectuer un test Anderson-Darling en Python
Comment effectuer un test Kolmogorov-Smirnov en Python

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *