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 …
Die lineare Regression ist eine Methode, mit der wir die Beziehung zwischen einer oder mehreren Prädiktorvariablen und einer Antwortvariablen verstehen können.
In diesem Tutorial wird erklärt, wie Sie in Python eine lineare Regression durchführen.
Angenommen, wir möchten wissen, ob sich die Anzahl der Stunden des Studiums und die Anzahl der absolvierten Vorbereitungsprüfungen auf die Punktzahl auswirkt, die ein Schüler bei einer bestimmten Prüfung erhält.
Um diese Beziehung zu untersuchen, können wir die folgenden Schritte in Python ausführen, um eine multiple lineare Regression durchzuführen.
Schritt 1: Geben Sie die Daten ein.
Zuerst erstellen wir einen Pandas-DataFrame für unseren Datensatz:
import pandas as pd
# Daten erstellen
df = pd.DataFrame({'hours': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6, 5, 3, 4, 6, 2, 1, 2],
'exams': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2, 4, 4, 4, 5, 1, 0, 1],
'score': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96, 90, 82, 85, 99, 83, 62, 76]})
# Daten anzeigen
df
hours exams score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90
11 3 3 75
12 6 2 96
13 5 4 90
14 3 4 82
15 4 4 85
16 6 5 99
17 2 1 83
18 1 0 62
19 2 1 76
Schritt 2: Führen Sie eine lineare Regression durch.
Als Nächstes verwenden wir die OLS()-Funktion aus der statsmodels Bibliothek, um eine gewöhnliche Regression der kleinsten Quadrate durchzuführen, wobei "Stunden" (hours) und "Prüfungen" (exams) als Prädiktorvariablen und "Punktzahl" (score) als Antwortvariable verwendet werden:
import statsmodels.api as sm
# Antwortvariable definieren
y = df['score']
# Prädiktorvariablen definieren
x = df[['hours', 'exams']]
# Konstante zu Prädiktorvariablen hinzufügen
x = sm.add_constant(x)
# lineares Regressionsmodell anpassen
model = sm.OLS(y, x).fit()
# Modellzusammenfassung anzeigen
print(model.summary())
OLS Regression Results
==============================================================================
Dep. Variable: score R-squared: 0.734
Model: OLS Adj. R-squared: 0.703
Method: Least Squares F-statistic: 23.46
Date: Fri, 24 Jul 2020 Prob (F-statistic): 1.29e-05
Time: 13:20:31 Log-Likelihood: -60.354
No. Observations: 20 AIC: 126.7
Df Residuals: 17 BIC: 129.7
Df Model: 2
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 67.6735 2.816 24.033 0.000 61.733 73.614
hours 5.5557 0.899 6.179 0.000 3.659 7.453
exams -0.6017 0.914 -0.658 0.519 -2.531 1.327
==============================================================================
Omnibus: 0.341 Durbin-Watson: 1.506
Prob(Omnibus): 0.843 Jarque-Bera (JB): 0.196
Skew: -0.216 Prob(JB): 0.907
Kurtosis: 2.782 Cond. No. 10.8
==============================================================================
Schritt 3: Interpretieren Sie die Ergebnisse.
So interpretieren Sie die relevantesten Zahlen in der Ausgabe:
R-squared: 0,734. Dies ist als Bestimmungskoeffizient bekannt. Es ist der Anteil der Varianz in der Antwortvariablen, der durch die Prädiktorvariablen erklärt werden kann. In diesem Beispiel lassen sich 73,4% der Abweichungen in den Prüfungsergebnissen durch die Anzahl der untersuchten Stunden und die Anzahl der vorbereiteten Prüfungen erklären.
F-statistic: 23,46. Dies ist die Gesamt-F-Statistik für das Regressionsmodell.
Prob (F-statistic): 1.29e-05. Dies ist der p-Wert, der der gesamten F-Statistik zugeordnet ist. Es zeigt uns, ob das Regressionsmodell insgesamt statistisch signifikant ist oder nicht. Mit anderen Worten, es sagt uns, ob die beiden kombinierten Prädiktorvariablen eine statistisch signifikante Assoziation mit der Antwortvariablen haben. In diesem Fall beträgt der p-Wert weniger als 0,05, was darauf hinweist, dass die Prädiktorvariablen „Studienstunden“ und „Vorbereitungsprüfungen“ zusammen eine statistisch signifikante Assoziation mit dem Prüfungsergebnis aufweisen.
coef: Die Koeffizienten für jede Prädiktorvariable geben die durchschnittliche erwartete Änderung der Antwortvariablen an, vorausgesetzt, die andere Prädiktorvariable bleibt konstant. Beispielsweise wird erwartet, dass sich die durchschnittliche Prüfungspunktzahl für jede weitere Unterrichtsstunde um 5,56 erhöht, vorausgesetzt, die vorbereiteten Prüfungen bleiben konstant.
Hier ist eine andere Möglichkeit, darüber nachzudenken: Wenn Schüler A und Schüler B beide die gleiche Anzahl an Vorbereitungsprüfungen ablegen, Schüler A jedoch eine Stunde länger lernt, wird erwartet, dass Schüler A eine um 5,56 Punkte höhere Punktzahl als Schüler B erzielt.
Wir interpretieren den Koeffizienten für den Achsenabschnitt so, dass die erwartete Prüfungspunktzahl für einen Studenten, der null Stunden studiert und keine Vorbereitungsprüfungen ablegt, 67,67 beträgt.
P > |t|. Die einzelnen p-Werte geben Auskunft darüber, ob jede Prädiktorvariable statistisch signifikant ist oder nicht. Wir können sehen, dass "Stunden" statistisch signifikant sind (p = 0,00), während "Prüfungen" (p = 0,52) ist bei α = 0,05 statistisch nicht signifikant. Da „Prüfungen“ statistisch nicht signifikant sind, entscheiden wir uns möglicherweise, sie aus dem Modell zu entfernen.
Geschätzte Regressionsgleichung: Wir können die Koeffizienten aus der Ausgabe des Modells verwenden, um die folgende geschätzte Regressionsgleichung zu erstellen:
Prüfungsergebnis = 67,67 + 5,56 * (Stunden) - 0,60 * (Vorbereitungsprüfungen)
Wir können diese geschätzte Regressionsgleichung verwenden, um die erwartete Prüfungspunktzahl für einen Schüler zu berechnen, basierend auf der Anzahl der Stunden, die er studiert, und der Anzahl der Vorbereitungsprüfungen, die er ablegt. Zum Beispiel wird von einem Studenten, der drei Stunden studiert und eine Vorbereitungsprüfung ablegt, eine Punktzahl von 83,75 erwartet:
Beachten Sie, dass wir uns möglicherweise dafür entscheiden, diese zu entfernen, da die vorbereitenden Prüfungen statistisch nicht signifikant waren (p = 0,52), da sie das Gesamtmodell nicht verbessern. In diesem Fall könnten wir eine einfache lineare Regression durchführen, indem wir nur Stunden als Prädiktorvariable verwenden.
Schritt 4: Überprüfen Sie die Modellannahmen.
Sobald Sie eine lineare Regression durchgeführt haben, sollten Sie verschiedene Annahmen überprüfen, um sicherzustellen, dass die Ergebnisse des Regressionsmodells zuverlässig sind. Diese Annahmen umfassen:
Annahme Nr. 1: Es besteht eine lineare Beziehung zwischen den Prädiktorvariablen und der Antwortvariablen.
Annahme Nr. 2: Unabhängigkeit von Residuen.
Annahme Nr. 3: Homoskedastizität von Residuen.
Annahme Nr. 4: Normalverteilung der Residuen.
Annahme Nr. 5: Stellen Sie sicher, dass unter Prädiktorvariablen keine Multikollinearität besteht.
Wenn diese Annahmen erfüllt sind, können Sie sicher sein, dass die Ergebnisse Ihres multiplen linearen Regressionsmodells zuverlässig sind.
Den vollständigen Python-Code, der in diesem Tutorial verwendet wird, 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 …