Comment effectuer un test Jarque-Bera en Python



Le test de Jarque-Bera est un test d’ajustement qui détermine si les données d’échantillon présentent ou non une asymétrie et un aplatissement qui correspondent à une distribution normale.

La statistique du test de Jarque-Bera est toujours un nombre positif et plus il est éloigné de zéro, plus il y a de preuves que les données de l’échantillon ne suivent pas une distribution normale.

Ce tutoriel explique comment réaliser un test Jarque-Bera en Python.

Comment effectuer un test Jarque-Bera en Python

Pour réaliser un test Jarque-Bera en Python on peut utiliser la fonction jarque_bera de la bibliothèque Scipy, qui utilise la syntaxe suivante :

jarque_bera(x)

où:

  • x : un tableau d’observations

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

Exemple 1

Supposons que nous effectuions un test de Jarque-Bera sur une liste de 5 000 valeurs qui suivent une distribution normale :

import numpy as np
import scipy.stats as stats

#generate array of 5000 values that follow a standard normal distribution
np.random.seed(0)
data = np.random.normal(0, 1, 5000)

#perform Jarque-Bera test
stats.jarque_bera(data)

(statistic=1.2287, pvalue=0.54098)

La statistique du test est de 1,2287 et la valeur p correspondante est de 0,54098 . Puisque cette valeur p n’est pas inférieure à 0,05, nous ne parvenons pas à rejeter l’hypothèse nulle. Nous n’avons pas suffisamment de preuves pour affirmer que ces données présentent une asymétrie et un aplatissement significativement différents d’une distribution normale.

Ce résultat ne devrait pas être surprenant puisque les données que nous avons générées sont composées de 5 000 variables aléatoires qui suivent une distribution normale.

Exemple 2

Supposons maintenant que nous effectuions un test de Jarque-Bera sur une liste de 5 000 valeurs qui suivent une distribution uniforme :

import numpy as np
import scipy.stats as stats

#generate array of 5000 values that follow a uniform distribution
np.random.seed(0)
data = np.random.uniform(0, 1, 5000)

#perform Jarque-Bera test
stats.jarque_bera(data)

(statistic=300.1043, pvalue=0.0)

La statistique de test est 300,1043 et la valeur p correspondante est 0,0 . Puisque cette valeur p est inférieure à 0,05, nous rejetons l’hypothèse nulle. Ainsi, nous disposons de suffisamment de preuves pour affirmer que ces données présentent une asymétrie et un aplatissement significativement différents d’une distribution normale.

Ce résultat ne devrait pas non plus être surprenant puisque les données que nous avons générées sont composées de 5 000 variables aléatoires qui suivent une distribution uniforme, qui devrait avoir une asymétrie et un aplatissement très différents d’une distribution normale.

Quand utiliser le test de Jarque-Bera

Le test de Jarque-Bera est généralement utilisé pour de grands ensembles de données (n > 2 000) dans lesquels d’autres tests de normalité (comme le test de Shapiro-Wilk) ne sont pas fiables.

Il s’agit d’un test approprié à utiliser avant d’effectuer une analyse dans laquelle il est supposé que l’ensemble de données suit une distribution normale. Un test de Jarque-Bera peut vous dire si cette hypothèse est satisfaite ou non.

Ajouter un commentaire

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