[PYTHON] Test de Jack Bella

1 Cet article est

Je vais vous expliquer comment effectuer le test Jack Bella en Python.

2 Sommaire

2-1 Qu'est-ce que le test Jack Bella?

Le test Jack Bella est une technique permettant de déterminer si un échantillon suit une distribution normale.

La statistique de test JB est indiquée dans la formule ci-dessous. [par Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A3%E3%83%83%E3%82%AF%E2%80%93%E3% 83% 99% E3% 83% A9% E6% A4% 9C% E5% AE% 9A #: ~: texte =% E3% 82% B8% E3% 83% A3% E3% 83% 83% E3% 82% AF% EF% BC% 9D% E3% 83% 99% E3% 83% A9% E6% A4% 9C% E5% AE% 9A% EF% BC% 88% E3% 82% B8% E3% 83% A3% E3% 83% 83% E3% 82% AF,% E9% 81% A9% E5% 90% 88% E5% BA% A6% E6% A4% 9C% E5% AE% 9A% E3% 81% A7% E3 % 81% 82% E3% 82% 8B% E3% 80% 82)

94.JPG

La statistique de test JB suit une distribution χ-carré. Effectuez le test temporaire décrit ci-dessous avec les statistiques de test JB. (Niveau de signification p%)

H0 (hypothèse nulle): L'échantillon suit une distribution normale. H1 (hypothèse opposée): L'échantillon ne suit pas une distribution normale.

En Python, stats.jarque_bera (x) peut être utilisé pour calculer la statistique de test JB pour l'échantillon x. La valeur de retour de stats.jarque_bera est [valeur calculée JB, valeur p].

Si le niveau de signification est défini sur p = 0,05 et la valeur de retour p valeur de stats.jarque_bera est> 0,05, l'hypothèse nulle est adoptée et l'échantillon peut être considéré comme suivant une distribution normale. Inversement, si la valeur p calculée <= 0,05, l'échantillon est jugé ne pas suivre une distribution normale.

2-2 Exemple d'exécution du test Jack Bella en Python

Exemple 1

Créez un échantillon en générant 10000 nombres aléatoires qui suivent une distribution normale avec une moyenne de 0 et une variance de 1. Effectuez le test Jack Bella sur l'échantillon pour vérifier si l'échantillon suit une distribution normale.

sample.py


import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

#Générez des nombres aléatoires qui suivent une distribution normale.
x = np.random.normal(0, 1, 10000) 

#Dessinez un histogramme de l'échantillon.
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.hist(x, bins=50)
ax.set_title('first histogram')
ax.set_xlabel('x')
ax.set_ylabel('freq')
fig.show()

#Effectuez le test Jack Bella.
jarque_bera_test = stats.jarque_bera(x)
print('Jack Bera:', '\t', jarque_bera_test) 

(Résultat de l'exécution) À la suite du test de Jack Bella, une valeur p> 0,05 est calculée, de sorte que l'hypothèse nulle selon laquelle l'échantillon suit une distribution normale peut être adoptée.

test.txt


Jack Bera: 	 (JB=0.3352314362400006, p-value=0.8456787512712962)
95.JPG

Exemple 2

Créez un échantillon en générant 10000 nombres aléatoires qui suivent la distribution χ-carré avec 1 degré de liberté. Effectuez le test Jack Bella sur l'échantillon pour vérifier si l'échantillon suit une distribution normale.

sample.py


import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

#Générez des nombres aléatoires qui suivent une distribution normale.
x = np.random.normal(0, 1, 10000) 
kai=x*x #kai suit une distribution χ-carré

#Dessinez un histogramme de l'échantillon.
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.hist(kai, bins=50)
ax.set_title('first histogram')
ax.set_xlabel('kai')
ax.set_ylabel('freq')
fig.show()

#Effectuez le test Jack Bella.
jarque_bera_test = stats.jarque_bera(kai)
print('Jack Bera:', '\t', jarque_bera_test)

(Résultat de l'exécution) À la suite du test de Jack Bella, une valeur p <0,05 est calculée, donc l'hypothèse nulle est rejetée et l'hypothèse alternative que l'échantillon ne suit pas la distribution normale est adoptée.

test.txt


Jack Bera: 	 (JB=89946.17232671285, p-value=0.0)
96.JPG

Recommended Posts

Test de Jack Bella
tester
Test de charge acridienne
Test Django
Post test
À propos du test
test unitaire numpy
Distribution et test
Test d'intégrité Python