So führen sie eine logistische regression mithilfe statistischer modelle durch
Das Statsmodels- Modul von Python bietet eine Vielzahl von Funktionen und Klassen, mit denen Sie verschiedene statistische Modelle anpassen können.
Das folgende Schritt-für-Schritt-Beispiel zeigt, wie eine logistische Regression mithilfe von Statsmodels-Funktionen durchgeführt wird.
Schritt 1: Erstellen Sie die Daten
Erstellen wir zunächst einen Pandas-DataFrame, der drei Variablen enthält:
- Studierte Stunden (Gesamtwert)
- Studienmethode (Methode A oder B)
- Prüfungsergebnis (bestanden oder nicht bestanden)
Wir werden ein logistisches Regressionsmodell anhand der Lernstunden und der Lernmethode anpassen, um vorherzusagen, ob ein Student eine bestimmte Prüfung besteht oder nicht.
Der folgende Code zeigt, wie der Pandas DataFrame erstellt wird:
import pandas as pd #createDataFrame df = pd. DataFrame ({' result ': [0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1], ' hours ': [1, 2, 2, 2, 3, 2, 5, 4, 3, 6, 5, 8, 8, 7, 6, 7, 5, 4, 8, 9], ' method ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'B', 'A', 'B', 'B', 'A', 'A', 'B', 'A', 'B', 'A']}) #view first five rows of DataFrame df. head () result hours method 0 0 1 A 1 1 2 A 2 0 2 A 3 0 2 B 4 0 3 B
Schritt 2: Passen Sie das logistische Regressionsmodell an
Als nächstes passen wir das logistische Regressionsmodell mithilfe der Funktion logit() an:
import statsmodels. formula . api as smf
#fit logistic regression model
model = smf. logit (' result~hours+method ', data=df). fit ()
#view model summary
print ( model.summary ())
Optimization completed successfully.
Current function value: 0.557786
Iterations 5
Logit Regression Results
==================================================== ============================
Dept. Variable: result No. Observations: 20
Model: Logit Df Residuals: 17
Method: MLE Df Model: 2
Date: Mon, 22 Aug 2022 Pseudo R-squ.: 0.1894
Time: 09:53:35 Log-Likelihood: -11.156
converged: True LL-Null: -13.763
Covariance Type: nonrobust LLR p-value: 0.07375
==================================================== ============================
coef std err z P>|z| [0.025 0.975]
-------------------------------------------------- -----------------------------
Intercept -2.1569 1.416 -1.523 0.128 -4.932 0.618
method[TB] 0.0875 1.051 0.083 0.934 -1.973 2.148
hours 0.4909 0.245 2.002 0.045 0.010 0.972
==================================================== ============================
Die Werte in der Spalte „coef“ der Ausgabe geben Auskunft über die durchschnittliche Änderung der logarithmischen Wahrscheinlichkeit, die Prüfung zu bestehen.
Zum Beispiel:
- Die Verwendung von Lernmethode B ist im Vergleich zur Verwendung von Lernmethode A mit einer durchschnittlichen Steigerung der logarithmischen Wahrscheinlichkeit, die Prüfung zu bestehen, um 0,0875 verbunden.
- Jede zusätzliche gelernte Stunde ist mit einer durchschnittlichen Steigerung der logarithmischen Wahrscheinlichkeit, die Prüfung zu bestehen, um 0,4909 verbunden.
Die Werte in P>|z| Die Spalte stellt die p-Werte für jeden Koeffizienten dar.
Zum Beispiel:
- Die Studienmethode hat einen p-Wert von 0,934 . Da dieser Wert nicht weniger als 0,05 beträgt, bedeutet dies, dass kein statistisch signifikanter Zusammenhang zwischen den gelernten Stunden und dem Bestehen der Prüfung besteht.
- Die untersuchten Stunden haben einen p-Wert von 0,045 . Da dieser Wert unter 0,05 liegt, bedeutet dies, dass ein statistisch signifikanter Zusammenhang zwischen den gelernten Stunden und dem Bestehen der Prüfung besteht.
Schritt 3: Bewerten Sie die Modellleistung
Um die Qualität des logistischen Regressionsmodells zu beurteilen, können wir uns zwei Metriken in der Ausgabe ansehen:
1. Spitzname R-Quadrat
Dieser Wert kann als Ersatz für den R-Quadrat-Wert für ein lineares Regressionsmodell betrachtet werden.
Sie wird als Verhältnis der maximierten Log-Likelihood-Funktion vom Nullmodell zum vollständigen Modell berechnet.
Dieser Wert kann zwischen 0 und 1 liegen, wobei höhere Werte auf eine bessere Modellanpassung hinweisen.
In diesem Beispiel beträgt der Pseudo-R-Quadrat-Wert 0,1894 , was recht niedrig ist. Dies zeigt uns, dass die Prädiktorvariablen des Modells den Wert der Antwortvariablen nicht sehr gut vorhersagen können.
2. LLR-p-Wert
Dieser Wert kann als Ersatz für den p-Wert für den Gesamt-F-Wert eines linearen Regressionsmodells betrachtet werden.
Liegt dieser Wert unter einem bestimmten Schwellenwert (zum Beispiel α = 0,05), können wir daraus schließen, dass das Modell als Ganzes „nützlich“ ist und die Werte der Antwortvariablen im Vergleich zu einem Modell ohne Vorhersagevariablen besser vorhersagen kann.
In diesem Beispiel beträgt der p-Wert des LLR 0,07375 . Abhängig vom gewählten Signifikanzniveau (z. B. 0,01, 0,05, 0,1) können wir zu dem Schluss kommen, dass das Modell als Ganzes nützlich ist oder auch nicht.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Python ausführen:
So führen Sie eine lineare Regression in Python durch
So führen Sie eine logarithmische Regression in Python durch
So führen Sie eine Quantilregression in Python durch