So berechnen Sie standardisierte Residuen in Python

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

Ein Residuum ist die Differenz zwischen einem beobachteten Wert und einem vorhergesagten Wert in einem Regressionsmodell.

Es wird berechnet als:

Residuum = beobachteter Wert - vorhergesagter Wert

Wenn wir die beobachteten Werte zeichnen und die angepasste Regressionslinie überlagern, sind die Residuen für jede Beobachtung der vertikale Abstand zwischen der Beobachtung und der Regressionslinie:

Beispiel für Residuen in der Statistik

Eine Art von Residuen, die wir häufig zur Identifizierung von Ausreißern in einem Regressionsmodell verwenden, wird als standardisierte Residuen bezeichnet.

Es wird berechnet als:

r i = e i / s (e i ) = e i / RSE√ 1-h ii

wo:

  • e i: Das i-te Residuum
  • RSE: Der Standardfehler der Residuen des Modells
  • h ii: Die Hebelwirkung der i-ten Beobachtung

In der Praxis betrachten wir standardisierte Residuen mit einem Absolutwert größer als 3 häufig als Ausreißer.

Dieses Tutorial enthält ein schrittweises Beispiel für die Berechnung standardisierter Residuen in Python.

Schritt 1: Geben Sie die Daten ein

Zuerst erstellen wir einen kleinen Datensatz, mit dem Sie in Python arbeiten können:

import pandas as pd

# Datensatz erstellen
df = pd.DataFrame({'x': [8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30],
                   'y': [41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57]})

Schritt 2: Passen Sie das Regressionsmodell an

Als nächstes passen wir ein einfaches lineares Regressionsmodell an:

import statsmodels.api as sm

# Antwortvariable definieren
y = df['y']

# erklärende Variable definieren
x = df['x']

# Konstante zu Prädiktorvariablen hinzufügen
x = sm.add_constant(x)

# Lineares Regressionsmodell anpassen
model = sm.OLS(y, x).fit() 

Schritt 3: Berechnen Sie die standardisierten Residuen

Als nächstes berechnen wir die standardisierten Residuen des Modells:

# Instanz des Einflusses erstellen
influence = model.get_influence()

# standardisierte Residuen erhalten
standardized_residuals = influence.resid_studentized_internal

# standardisierte Residuen anzeigen
print(standardized_residuals)

[ 1.40517322  0.81017562  0.07491009 -0.59323342 -1.2482053  -0.64248883
  0.59610905 -0.05876884 -2.11711982 -0.066556    0.91057211  1.26973888]

Aus den Ergebnissen können wir erkennen, dass keiner der standardisierten Residuen einen absoluten Wert von 3 überschreitet. Somit scheint keine der Beobachtungen Ausreißer zu sein.

Schritt 4: Visualisieren Sie die standardisierten Residuen

Zuletzt können wir ein Streudiagramm erstellen, um die Werte für die Prädiktorvariable im Vergleich zu den standardisierten Residuen zu visualisieren:

import matplotlib.pyplot as plt

plt.scatter(df.x, standardized_residuals)
plt.xlabel('x')
plt.ylabel('Standardized Residuals')
plt.axhline(y=0, color='black', linestyle='--', linewidth=1)
plt.show()

Darstellung standardisierter Residuen in Python

Zusätzliche Ressourcen

Standardisierte Residuen Rechner

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: