Das Akaike-Informationskriterium (AIC) ist eine Metrik, die verwendet wird, um die Anpassung verschiedener Regressionsmodelle zu vergleichen.
Es wird berechnet als:
AIC = 2K – 2ln (L)
wo:
- K: Die Anzahl der Modellparameter …
Ein Anderson-Darling-Test ist ein Anpassungstest, der misst, wie gut Ihre Daten zu einer bestimmten Verteilung passen. Dieser Test wird am häufigsten verwendet, um festzustellen, ob Ihre Daten einer Normalverteilung folgen oder nicht.
Diese Art von Test ist nützlich, um die Normalität zu testen. Dies ist eine häufige Annahme, die in vielen statistischen Tests verwendet wird, einschließlich Regression, ANOVA, t-Tests und vielen anderen.
Um einen Anderson-Darling-Test in Python durchzuführen, können wir die Funktion anderson() aus der Bibliothek scipy.stats verwenden, die die folgende Syntax verwendet:
anderson(x, dist = 'norm')
wo:
So führen Sie beispielsweise einen Anderson-Darling-Test an einer Stichprobe von 50 normalverteilten Zufallsvariablen durch:
import numpy as np
# Daten erstellen
np.random.seed(0)
data = np.random.normal(size=50)
# Anderson-Darling-Test durchführen
from scipy.stats import anderson
anderson(data)
AndersonResult(statistic=0.15006999533388665,
critical_values=array([0.538, 0.613, 0.736, 0.858, 1.021]),
significance_level=array([15. , 10. , 5. , 2.5, 1. ]))
Die Teststatistik beträgt 0,150. Wir können diesen Wert mit jedem kritischen Wert vergleichen, der jedem Signifikanzniveau entspricht, um festzustellen, ob die Testergebnisse signifikant sind. Beispielsweise:
Und so weiter.
Wir können sehen, dass die Testergebnisse auf keinem Signifikanzniveau signifikant sind, was bedeutet, dass wir die Nullhypothese des Tests nicht ablehnen würden. Daher haben wir nicht genügend Beweise, um zu sagen, dass die Probendaten nicht normal verteilt sind.
Dieses Ergebnis sollte nicht überraschen, wenn man bedenkt, dass wir die Funktion np.rand.normal() verwendet haben, um eine Stichprobe von 50 normalverteilten Werten zu generieren.
Überlegen Sie stattdessen, ob wir den Anderson-Darling-Test an einer Stichprobe von 50 zufälligen Ganzzahlen zwischen 0 und 10 durchgeführt haben:
import numpy as np
# Daten erstellen
np.random.seed(0)
data = np.random.randint(0, 10, size=50)
# Anderson-Darling-Test durchführen
from scipy.stats import anderson
anderson(data)
AndersonResult(statistic=1.1926463985076836,
critical_values=array([0.538, 0.613, 0.736, 0.858, 1.021]),
significance_level=array([15. , 10. , 5. , 2.5, 1. ]))
Die Teststatistik ist 1.1926. Wir können diesen Wert mit jedem kritischen Wert vergleichen, der jedem Signifikanzniveau entspricht, um festzustellen, ob die Testergebnisse signifikant sind. Beispielsweise:
Und so weiter.
Wir können sehen, dass die Testergebnisse auf jedem Signifikanzniveau signifikant sind, was bedeutet, dass wir die Nullhypothese des Tests ablehnen würden, unabhängig davon, welches Signifikanzniveau wir verwenden. Wir haben also genügend Beweise, um zu sagen, dass die Probendaten nicht normal verteilt sind.
Dieses Ergebnis sollte auch nicht überraschen, wenn man bedenkt, dass wir die Funktion np.rand.randint() verwendet haben, um eine Stichprobe von 50 zufälligen Ganzzahlen zwischen 0 und 10 zu generieren, was einer Normalverteilung wahrscheinlich nicht folgt.
Weitere Python-Tutorials finden Sie hier.
Das Akaike-Informationskriterium (AIC) ist eine Metrik, die verwendet wird, um die Anpassung verschiedener Regressionsmodelle zu vergleichen.
Es wird berechnet als:
AIC = 2K – 2ln (L)
wo:
Die logistische Regression ist eine statistische Methode, die wir verwenden, um ein Regressionsmodell anzupassen, wenn die Antwortvariable binär ist.
Um zu beurteilen, wie gut ein logistisches Regressionsmodell zu einem Datensatz …