Ich werde erklären, wie der Jack Bella-Test in Python durchgeführt wird.
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)
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.
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)
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)