Ich habe den statistischen Hypothesentest zusammengefasst. Später möchte ich einen Artikel schreiben, der "Erkennungsleistung" und "Effektmenge" organisiert. Deshalb habe ich diesen Artikel als ersten Schritt geschrieben. Ich bin kein Experte für Statistik, daher würde ich mich freuen, wenn Sie auf Fehler hinweisen könnten.
Das Folgende wird als Referenz verwendet, wenn der "statistische Hypothesentest" zusammengefasst wird.
Wir werden den Ablauf der statistischen Hypothesentests organisieren und schließlich in Python implementieren.
Wikipedia erklärt den statistischen Hypothesentest wie folgt.
Das Testen statistischer Hypothesen ist eine der statistischen Methoden zum Testen der Hypothese über die Population der Populationsverteilung aus der Stichprobe. Die japanischen Industriestandards definieren eine Hypothese als "Erklärung der Population oder Wahrscheinlichkeitsverteilung. Es gibt Nullhypothesen und alternative Hypothesen". Der Test (statistischer Test) ist "ein statistisches Verfahren zur Entscheidung, ob die Nullhypothese abgelehnt und die alternative Hypothese unterstützt werden soll oder nicht, um die Nullhypothese basierend auf den beobachteten Werten abzulehnen. Das Verfahren besteht darin, dass die Nullhypothese gilt. Es wird entschieden, dass die Wahrscheinlichkeit der Zurückweisung α oder weniger beträgt, obwohl dies getan wird. Dieses α wird als Signifikanzniveau bezeichnet. "
Obwohl Fachbegriffe wie "Nullhypothese", "Gegenhypothese" und "Signifikanzniveau" herausgekommen sind und schwer zu definieren sind, verstehe ich, dass dies eine Methode zur Durchführung der Verifizierung mit der folgenden Logik ist. ..
** Unter der Annahme, dass eine bestimmte Hypothese korrekt ist, wird bei der Berechnung der Wahrscheinlichkeit, aus den tatsächlich beobachteten Daten zum Zustand dieser Hypothese zu werden, beurteilt, dass die Hypothese wahrscheinlich nicht gültig ist, wenn die Wahrscheinlichkeit ausreichend klein ist **
Der statistische Hypothesentest wird gemäß dem folgenden Verfahren durchgeführt.
Wenn nur das Verfahren aufgeführt ist, ist es abstrakt und schwer zu verstehen, daher werde ich es anhand eines konkreten Beispiels erläutern.
Wir haben 5 Mal Münzwurf gespielt und 500 Yen bekommen, als die Vorderseite herauskam und 500 Yen, als die Rückseite herauskam. Infolgedessen kam der Tisch alle fünf Male heraus und ich musste 2500 Yen bezahlen. Irgendwie riecht es nach Tintenfisch, aber kann man sagen, dass diese Münze ein Schwindel ist?
Einige Leute sagen vielleicht: "Ist es nicht manchmal so, dass die Tabelle fünfmal hintereinander erscheint?", Während andere sagen: "Es ist seltsam, dass die Tabelle fünfmal hintereinander erscheint." Solche Dinge können mit dem statistischen Hypothesentest objektiv beurteilt werden.
Dieses Mal werde ich als Hypothese, dass ich zu nichts zurückkehren möchte (eine Hypothese, die ich leugnen möchte), eine Hypothese aufstellen, dass ** diese Münze keine Fälschung ist **. Da es sich nicht um eine Fälschung handelt, beträgt die Wahrscheinlichkeit, dass die Tabelle angezeigt wird, $ p = 0,5 $. Sie wird daher wie folgt ausgedrückt.
Nullhypothese: $ H_ {0}: p = 0,5 $
Die alternative Hypothese (die Wahrscheinlichkeit, dass die Tabelle angezeigt wird, beträgt 50% oder mehr) lautet wie folgt.
Oppositionshypothese: $ H_ {0}: p> 0,5 $
Dieses Mal werden wir den Binomialtest verwenden. (Wenn die Anzahl der Stichproben groß ist, kann die Binomialverteilung einer Normalverteilung angenähert werden, sodass andere Methoden verwendet werden können.)
In diesem Test wird das ** Signifikanzniveau auf 5% ** eingestellt. Nullhypothese: Wenn die Wahrscheinlichkeit, Beobachtungsdaten zu erhalten, 5% oder weniger beträgt ** unter der Annahme von $ H_ {0}: p = 0,5 $, wird die Nullhypothese verworfen (dh ** diese Münze ist falsch). Es gibt **).
Auch dieses Mal werden wir einen ** einseitigen Test ** für einen Test ** durchführen, um den Verdacht zu überprüfen, dass die Münze ungewöhnlich leicht zu erscheinen ist. Der Ablehnungsbereich befindet sich nur auf einer Seite.
Eine als p-Wert bezeichnete Statistik repräsentiert die Wahrscheinlichkeit, dass der realisierte Wert der beobachteten Daten erhalten wird, oder die Wahrscheinlichkeit, dass extremere Daten erhalten werden, vorausgesetzt, die Nullhypothese ist korrekt.
Daher ist der p-Wert in diesem Fall die Wahrscheinlichkeit, dass die Tabelle fünfmal angezeigt wird, vorausgesetzt, die Wahrscheinlichkeit, dass die Tabelle angezeigt wird, beträgt $ 50 % $.
Nachdem wir die für den Hypothesentest erforderlichen Informationen haben, werden wir uns entscheiden, die Nullhypothese abzulehnen oder zu übernehmen. Das Signifikanzniveau dieses Hypothesentests betrug $ 0,05 $ ($ 5 % $), und die Statistik (p-Wert) betrug als Ergebnis der Berechnung $ 0,03125 $.
Da $ 0.03125 <0.05 $ ist, wird die Nullhypothese verworfen und die Alternativhypothese übernommen.
Daher wurde überprüft, dass $ H_ {0}: p> 0,5 $ (diese Münze ist eine Fälschung).
Die obige Berechnung kann leicht in Python durchgeführt werden. Nachfolgend finden Sie die Ergebnisse eines Binomialtests mit scipy 1.3.1.
from scipy import stats
#x ist die Anzahl der erfolgreichen Beobachtungen
#n ist die Anzahl der Versuche
#p ist die erwartete Erfolgswahrscheinlichkeit
#Alternative gibt an, ob es sich um einen zweiseitigen oder einen einseitigen Test handelt und ob es sich um einen einseitigen Test handelt, um welche Seite es sich handelt
p = stats.binom_test(x = 5, n = 5, p = 0.5, alternative = 'greater' )
print(p)
Das Ausgabeergebnis ist hier. Der p-Wert kann gemäß dem angegebenen Argument ausgegeben werden.
0.03125
Ein Binomialtest kann leicht durchgeführt werden, indem eine Entscheidung über die Ablehnung oder Annahme gemäß dem oben angegebenen Signifikanzniveau getroffen wird. (Wenn Sie einen weiteren Test durchführen möchten, verwenden Sie eine andere Methode.)
Bisher wurde der Hypothesentest nur durch Berechnung durchgeführt, aber es wird sehr leicht verständlich, wenn die Verteilung tatsächlich gezeichnet wird. Führen Sie den Münzwurf fünfmal durch und zeichnen Sie die Verteilung der Häufigkeit, mit der die Tabelle angezeigt wird.
import numpy as np
import matplotlib.pyplot as plt
import math
%matplotlib inline
def comb_(n, k):
result = math.factorial(n) / (np.math.factorial(n - k) * np.math.factorial(k))
return result
def binomial_dist(p, n, k):
result = comb_(n, k) * (p**k) * ((1 - p) ** (n - k))
return result
x = np.arange(0, 6, 1)
y = [binomial_dist(0.5, 5, i) for i in x]
plt.bar(x, y, alpha = 0.5)
Das Obige ist das Ergebnis des Zeichnens, aber Sie können sofort sehen, dass ** die Wahrscheinlichkeit, dass die Tabelle fünfmal angezeigt wird, unter dem Signifikanzniveau von 0,05 ** liegt.
NEXT Das nächste Mal werde ich den ersten Fehlertyp, den zweiten Fehlertyp und die Erkennungsleistung im Hypothesentest zusammenfassen.
Recommended Posts