Eine vollständige anleitung zur linearen regression in python


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 erläutert, wie Sie eine lineare Regression in Python durchführen.

Beispiel: lineare Regression in Python

Angenommen, wir möchten wissen, ob die Anzahl der Lernstunden und die Anzahl der abgelegten Übungsprüfungen einen Einfluss auf die Note haben, die ein Student bei einer bestimmten Prüfung erhält.

Um diese Beziehung zu untersuchen, können wir in Python die folgenden Schritte ausführen, um eine multiple lineare Regression durchzuführen.

Schritt 1: Geben Sie die Daten ein.

Zuerst erstellen wir einen Pandas-DataFrame zur Aufnahme unseres Datensatzes:

 import pandas as pd

#create data
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]})

#view data 
df

        hours exam 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 Funktion OLS() aus der Statsmodels-Bibliothek, um eine gewöhnliche Regression der kleinsten Quadrate durchzuführen, wobei wir „Stunden“ und „Prüfungen“ als Prädiktorvariablen und „Punktzahl“ als Antwortvariable verwenden:

 import statsmodels.api as sm

#define response variable
y = df['score']

#define predictor variables
x = df[['hours', 'exams']]

#add constant to predictor variables
x = sm.add_constant(x)

#fit linear regression model
model = sm.OLS(y, x).fit()

#view model summary
print(model.summary())

                            OLS Regression Results                            
==================================================== ============================
Dept. Variable: R-squared score: 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: non-robust                                         
==================================================== ============================
                 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 im Ergebnis:

R im Quadrat: 0,734 . Dies wird als Bestimmtheitsmaß bezeichnet. Dies ist der Anteil der Varianz der Antwortvariablen, der durch die Prädiktorvariablen erklärt werden kann. In diesem Beispiel lassen sich 73,4 % der Abweichungen bei den Prüfungsergebnissen durch die Anzahl der gelernten Stunden und die Anzahl der abgelegten Vorbereitungsprüfungen erklären.

F-Statistik: 23,46 . Dies ist die Gesamt-F-Statistik des Regressionsmodells.

Wahrscheinlichkeit (F-Statistik): 1,29e-05. Dies ist der p-Wert, der der gesamten F-Statistik zugeordnet ist. Dies sagt uns, ob das Regressionsmodell als Ganzes statistisch signifikant ist oder nicht. Mit anderen Worten sagt es uns, ob die beiden Prädiktorvariablen zusammen einen statistisch signifikanten Zusammenhang mit der Antwortvariablen haben. In diesem Fall liegt der p-Wert unter 0,05, was darauf hinweist, dass die Prädiktorvariablen „Studienstunden“ und „abgelegte Vorbereitungsprüfungen“ zusammen einen statistisch signifikanten Zusammenhang mit der Prüfungspunktzahl haben.

Koeffizient: Die Koeffizienten jeder Prädiktorvariablen sagen uns die erwartete durchschnittliche Änderung der Antwortvariablen unter der Annahme, dass die andere Prädiktorvariable konstant bleibt. Beispielsweise würde sich die durchschnittliche Prüfungspunktzahl für jede weitere Lernstunde voraussichtlich um 5,56 erhöhen, vorausgesetzt, dass die Anzahl der absolvierten Übungsprüfungen konstant bleibt.

Anders ausgedrückt: Wenn Schüler A und Schüler B beide die gleiche Anzahl an Vorbereitungsprüfungen absolvieren, Schüler A aber eine Stunde länger lernt, dann sollte Schüler A 5,56 Punkte mehr Punkte erzielen als Schüler B.

Wir interpretieren den Intercept-Koeffizienten so, dass die erwartete Prüfungspunktzahl für einen Studenten, der keine Stunden studiert und keine Vorbereitungsprüfungen ablegt, 67,67 beträgt.

P>|t|. Einzelne p-Werte sagen uns, 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 der Begriff „Prüfungen“ statistisch nicht signifikant ist, entscheiden wir uns möglicherweise, ihn aus dem Modell zu entfernen.

Geschätzte Regressionsgleichung: Wir können die Koeffizienten aus der Modellausgabe 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 Studenten zu berechnen, basierend auf der Anzahl der Lernstunden und der Anzahl der von ihm abgelegten Übungsprüfungen. Ein Student, der beispielsweise drei Stunden lernt und eine Vorbereitungsprüfung ablegt, sollte eine Note von 83,75 erhalten:

Bedenken Sie, dass wir uns möglicherweise dazu entschließen, sie zu entfernen, da die vorherigen Vorbereitungsprüfungen statistisch nicht signifikant waren (p = 0,52), da sie keine Verbesserung für das Gesamtmodell bringen. In diesem Fall könnten wir eine einfache lineare Regression durchführen und dabei nur die untersuchten Stunden als Prädiktorvariable verwenden.

Schritt 4: Modellannahmen überprüfen.

Nachdem Sie eine lineare Regression durchgeführt haben, möchten Sie möglicherweise mehrere Annahmen überprüfen, um sicherzustellen, dass die Ergebnisse des Regressionsmodells zuverlässig sind. Zu diesen Annahmen gehören:

Annahme Nr. 1: Es besteht eine lineare Beziehung zwischen den Prädiktorvariablen und der Antwortvariablen.

  • Überprüfen Sie diese Annahme, indem Sie ein Residuendiagramm erstellen, das die angepassten Werte gegenüber den Residuen für ein Regressionsmodell anzeigt.

Hypothese Nr. 2: Unabhängigkeit der Residuen.

Hypothese Nr. 3: Homoskedastizität von Residuen.

Annahme Nr. 4: Normalität der Residuen.

Annahme Nr. 5: Stellen Sie sicher, dass zwischen den Prädiktorvariablen keine Multikollinearität besteht.

  • Überprüfen Sie diese Hypothese, indem Sie den VIF-Wert jeder Prädiktorvariablen berechnen.

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 .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert