So erstellen Sie ein Residuendiagramm in Python

Von Fabian
Kategorie: Python
Tags: Regression
Lesezeit: 3 Minuten

Ein Residuendiagramm ist ein Diagrammtyp, bei dem die angepassten Werte gegen die Residuenwerte für ein Regressionsmodell angezeigt werden. Diese Art von Diagramm wird häufig verwendet, um zu bewerten, ob ein lineares Regressionsmodell für einen bestimmten Datensatz geeignet ist oder nicht, und um die Heteroskedastizität von Residuen zu überprüfen.

In diesem Tutorial wird erläutert, wie Sie in Python ein Residuendiagramm für ein lineares Regressionsmodell erstellen.

Beispiel: Residuenplot in Python

In diesem Beispiel verwenden wir einen Datensatz, der die Attribute von 10 Basketballspielern beschreibt:

import numpy as np
import pandas as pd

# Datensatz erstellen
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

# Datensatz anzeigen
df

    rating  points  assists rebounds
0   90  25  5   11
1   85  20  7   8
2   82  14  7   10
3   88  16  8   6
4   94  27  5   6
5   90  20  7   9
6   76  12  6   6
7   75  15  9   10
8   87  14  9   10
9   86  19  5   7

Residuendiagramm für einfache lineare Regression

Angenommen, wir passen ein einfaches lineares Regressionsmodell an, bei dem Punkte als Prädiktorvariable und die Bewertung als Antwortvariable verwendet werden:

# Notwendige Bibliotheken importieren
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.formula.api import ols

# Einfaches lineares Regressionsmodell anpassen
model = ols('rating ~ points', data=df).fit()

# Modellzusammenfassung anzeigen
print(model.summary())

Mit der Funktion plot_regress_exog() aus der Bibliothek statsmodels können wir ein Residuum gegen ein angepasstes Diagramm erstellen:

# Größe definieren
fig = plt.figure(figsize=(12,8))

# Regressionsdiagramme erstellen
fig = sm.graphics.plot_regress_exog(model, 'points', fig=fig)

Residuenplot in Python

Es werden vier Parzellen erstellt. Die in der oberen rechten Ecke ist das verbleibende vs. angepasste Diagramm. Die x-Achse auf diesem Plot zeigt die tatsächlichen Werte für die Prädiktorvariable Punkte und die y-Achse zeigt das Residuum für diesen Wert.

Da die Residuen zufällig um Null gestreut zu sein scheinen, ist dies ein Hinweis darauf, dass Heteroskedastizität kein Problem mit der Prädiktorvariablen ist.

Residuendiagramme für multiple lineare Regression

Angenommen, wir passen stattdessen ein multiples lineares Regressionsmodell an, bei dem Assists und Rebounds als Prädiktorvariable und Rating als Antwortvariable verwendet werden:

# Mehrere lineare Regressionsmodelle anpassen
model = ols('rating ~ assists + rebounds', data=df).fit()

# Modellzusammenfassung anzeigen
print(model.summary())

Mit der Funktion plot_regress_exog() aus der statsmodels Bibliothek können wir erneut ein Residuum-Prädiktor-Diagramm für jeden einzelnen Prädiktor erstellen.

Im Folgenden sehen Sie beispielsweise, wie das Residuum-Prädiktor-Diagramm für die Prädiktorvariablen- Assists aussieht:

# Residuum vs. Prädiktor-Plot für 'Assists' erstellen
fig = plt.figure(figsize=(12,8))
fig = sm.graphics.plot_regress_exog(model, 'assists', fig=fig)

Residuum- vs. angepasste Parzelle

Und so sieht das Residuum-Prädiktor-Diagramm für die Rebounds der Prädiktorvariablen aus:

# Residuum vs. Prädiktor-Plot für 'Assists' erstellen
fig = plt.figure(figsize=(12,8))
fig = sm.graphics.plot_regress_exog(model, 'rebounds', fig=fig)

Residuum vs. angepasster Plot in Python

In beiden Darstellungen scheinen die Residuen zufällig um Null herum verstreut zu sein, was ein Hinweis darauf ist, dass Heteroskedastizität bei keiner der Prädiktorvariablen im Modell ein Problem darstellt.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: