Je vais vous expliquer comment effectuer le test Jack Bella en Python.
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)
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.
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)
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)