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.

Beispiel: Lineare Regression in Python

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.

  • Überprüfen Sie diese Annahme, indem Sie ein Residuendiagramm erstellen, in dem die angepassten Werte gegen die Residuenwerte für ein Regressionsmodell angezeigt werden.

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.

  • Überprüfen Sie diese Annahme, 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.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: