[PYTHON] Jack Bella Test

1 Dieser Artikel ist

Ich werde erklären, wie der Jack Bella-Test in Python durchgeführt wird.

2 Inhalt

2-1 Was ist der Jack Bella Test?

Der Jack Bella-Test ist eine Technik zur Bestimmung, ob eine Probe einer Normalverteilung folgt.

Die Teststatistik JB ist wie in der folgenden Formel gezeigt. [von 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 #: ~: Text =% 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

Die Teststatistik JB folgt einer χ-Quadrat-Verteilung. Führen Sie den unten beschriebenen temporären Test mit der Teststatistik JB durch. (Signifikanzniveau p%)

H0 (Nullhypothese): Die Stichprobe folgt einer Normalverteilung. H1 (entgegengesetzte Hypothese): Die Probe folgt keiner Normalverteilung.

In Python kann stats.jarque_bera (x) verwendet werden, um die Teststatistik JB für Beispiel x zu berechnen. Der Rückgabewert von stats.jarque_bera ist [JB berechneter Wert, p-Wert].

Wenn das Signifikanzniveau auf p = 0,05 eingestellt ist und der Rückgabewert p von stats.jarque_bera> 0,05 ist, wird die Nullhypothese übernommen und die Stichprobe kann so beurteilt werden, dass sie einer Normalverteilung folgt. Wenn umgekehrt der berechnete p-Wert <= 0,05 ist, wird beurteilt, dass die Probe keiner Normalverteilung folgt.

2-2 Beispiel für die Ausführung des Jack Bella-Tests in Python

Beispiel 1

Erstellen Sie eine Stichprobe, indem Sie 10000 Zufallszahlen generieren, die einer Normalverteilung mit einem Durchschnitt von 0 und einer Varianz von 1 folgen. Führen Sie den Jack Bella-Test an der Probe durch, um zu testen, ob die Probe einer Normalverteilung folgt.

sample.py


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

#Generieren Sie Zufallszahlen, die einer Normalverteilung folgen.
x = np.random.normal(0, 1, 10000) 

#Zeichnen Sie ein Histogramm der Probe.
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()

#Führen Sie den Jack Bella-Test durch.
jarque_bera_test = stats.jarque_bera(x)
print('Jack Bera:', '\t', jarque_bera_test) 

(Ausführungsergebnis) Als Ergebnis des Jack Bella-Tests wird ein p-Wert> 0,05 berechnet, sodass die Nullhypothese, dass die Stichprobe einer Normalverteilung folgt, übernommen werden kann.

test.txt


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

Beispiel 2

Erstellen Sie eine Stichprobe, indem Sie 10000 Zufallszahlen generieren, die der χ-Quadrat-Verteilung mit 1 Freiheitsgrad folgen. Führen Sie den Jack Bella-Test an der Probe durch, um zu testen, ob die Probe einer Normalverteilung folgt.

sample.py


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

#Generieren Sie Zufallszahlen, die einer Normalverteilung folgen.
x = np.random.normal(0, 1, 10000) 
kai=x*x #kai folgt einer χ-Quadrat-Verteilung

#Zeichnen Sie ein Histogramm der Probe.
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()

#Führen Sie den Jack Bella-Test durch.
jarque_bera_test = stats.jarque_bera(kai)
print('Jack Bera:', '\t', jarque_bera_test)

(Ausführungsergebnis) Als Ergebnis des Jack Bella-Tests wird ein p-Wert <0,05 berechnet, sodass die Nullhypothese verworfen wird und die alternative Hypothese, dass die Stichprobe nicht der Normalverteilung folgt, übernommen wird.

test.txt


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

Recommended Posts

Jack Bella Test
Prüfung
Locust-Load-Test
Django-Test
Post-Test
Über den Test
Numpy Unit Test
Verteilung und Test
Python-Integritätstest