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 Anderson-Darling en Python



Un test d’Anderson-Darling est un test d’ajustement qui mesure dans quelle mesure vos données s’ajustent à une distribution spécifiée.

Ce test est le plus souvent utilisé pour déterminer si vos données suivent ou non une distribution normale .

Ce type de test est utile pour tester la normalité, qui est une hypothèse couramment utilisée dans de nombreux tests statistiques, notamment la régression , l’ANOVA , les tests t et bien d’autres.

Exemple : test d’Anderson-Darling en Python

Pour effectuer un test Anderson-Darling en Python, nous pouvons utiliser la fonction anderson() de la bibliothèque scipy.stats, qui utilise la syntaxe suivante :

Anderson(x, dist=’norme’)

où:

  • x : tableau d’exemples de données
  • dist : le type de distribution sur lequel tester. La valeur par défaut est « norme », mais vous pouvez également spécifier « expon » ou « logistique ».

Par exemple, voici comment effectuer un test d’Anderson-Darling sur un échantillon de 50 variables aléatoires normalement distribuées :

import numpy as np

#create data
np.random.seed(0)
data = np.random.normal(size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult(statistic=0.15006999533388665,
               critical_values=array([0.538, 0.613, 0.736, 0.858, 1.021]),
               significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))

La statistique du test est de 0,150 . Nous pouvons comparer cette valeur à chaque valeur critique qui correspond à chaque niveau de signification pour voir si les résultats des tests sont significatifs. Par exemple:

  • La valeur critique pour α = 0,01 est 1,021 . Étant donné que la statistique du test (0,150) n’est pas supérieure à cette valeur critique, les résultats ne sont pas significatifs au niveau de signification de 0,01.
  • La valeur critique pour α = 0,025 est 0,858 . Étant donné que la statistique du test (0,150) n’est pas supérieure à cette valeur critique, les résultats ne sont pas significatifs au niveau de signification de 0,025.

Et ainsi de suite.

Nous pouvons voir que les résultats du test ne sont significatifs à aucun niveau de signification, ce qui signifie que nous ne rejetterons pas l’hypothèse nulle du test. Ainsi, nous ne disposons pas de preuves suffisantes pour affirmer que les données échantillonnées ne sont pas normalement distribuées.

Ce résultat ne devrait pas être surprenant étant donné que nous avons utilisé la fonction np.rand.normal() pour générer un échantillon de 50 valeurs normalement distribuées.

Considérons plutôt si nous effectuions le test d’Anderson-Darling sur un échantillon de 50 entiers aléatoires compris entre 0 et 10 :

import numpy as np

#create data
np.random.seed(0)
data = np.random.randint(0, 10, size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult(statistic=1.1926463985076836,
               critical_values=array([0.538, 0.613, 0.736, 0.858, 1.021]),
               significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))

La statistique du test est de 1,1926 . Nous pouvons comparer cette valeur à chaque valeur critique qui correspond à chaque niveau de signification pour voir si les résultats des tests sont significatifs. Par exemple:

  • La valeur critique pour α = 0,01 est 1,021 . Étant donné que la statistique du test (1,1926) est supérieure à cette valeur critique, les résultats sont significatifs au niveau de signification de 0,01.
  • La valeur critique pour α = 0,025 est 0,858 . Étant donné que la statistique du test (1,1926) est supérieure à cette valeur critique, les résultats sont significatifs au niveau de signification de 0,025.

Et ainsi de suite.

Nous pouvons voir que les résultats du test sont significatifs à chaque niveau de signification, ce qui signifie que nous rejetterions l’hypothèse nulle du test, quel que soit le niveau de signification que nous choisissons d’utiliser. Ainsi, nous disposons de suffisamment de preuves pour affirmer que les données échantillonnées ne sont pas normalement distribuées.

Ce résultat ne devrait pas non plus être surprenant étant donné que nous avons utilisé la fonction np.rand.randint() pour générer un échantillon de 50 entiers aléatoires compris entre 0 et 10, ce qui est peu susceptible de suivre une distribution normale.

Vous pouvez trouver plus de didacticiels Python ici .

Ajouter un commentaire

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