So entfernen Sie Ausreißer in Python

Von Fabian
Kategorie: Python
Lesezeit: 4 Minuten

Ein Ausreißer ist eine Beobachtung, die ungewöhnlich weit von anderen Werten in einem Datensatz entfernt ist. Ausreißer können problematisch sein, da sie die Ergebnisse einer Analyse beeinflussen können.

In diesem Tutorial wird erläutert, wie Sie Ausreißer in Python identifizieren und entfernen.

So identifizieren Sie Ausreißer in Python

Bevor Sie Ausreißer entfernen können, müssen Sie zunächst entscheiden, was Sie als Ausreißer betrachten. Es gibt zwei Möglichkeiten, dies zu tun:

1. Verwenden Sie den Interquartilsabstand.

Der Interquartilsabstand ((engl. Interquartile Range = IQR)) ist die Differenz zwischen dem 75. Perzentil (Q3) und dem 25. Perzentil (Q1) in einem Datensatz. Es misst die Streuung der mittleren 50% der Werte.

Sie können eine Beobachtung als Ausreißer definieren, wenn sie das 1,5-fache des Interquartilsabstand größer als das dritte Quartil (Q3) oder das 1,5-fache des Interquartilsabstand kleiner als das erste Quartil (Q1) ist.

Ausreißer = Beobachtungen> Q3 + 1,5 * (engl. Interquartile Range = IQR) oder Q1 – 1,5 * (engl. Interquartile Range = IQR)

2. Verwenden Sie Z-Werte.

Ein Z-Wert gibt an, wie viele Standardabweichungen ein bestimmter Wert vom Mittelwert aufweist. Wir verwenden die folgende Formel, um einen Z-Wer zu berechnen:

z = (X – μ) / σ

wo:

  • X ist ein einzelner Rohdatenwert
  • μ ist der Populationsmittelwert
  • σ ist die Populationsstandardabweichung

Sie können eine Beobachtung als Ausreißer definieren, wenn sie einen Z-Wert von weniger als -3 oder mehr als 3 aufweist.

Ausreißer = Beobachtungen mit Z-Wert > 3 oder <-3

So entfernen Sie Ausreißer in Python

Sobald Sie sich für einen Ausreißer entschieden haben, können Sie diese identifizieren und aus einem Datensatz entfernen. Um dies zu veranschaulichen, verwenden wir das folgende Pandas DataFrame:

import numpy as np
import pandas as pd 
importiere scipy.stats als stats

#Dataframe mit drei Spalten 'A', 'B', 'C' erstellen
np.random.seed(10)
data = pd.DataFrame(np.random.randint(0, 10, size=(100, 3)), columns=['A', 'B', 'C'])
#Die ersten 10 Zeilen anzeigen
data[:10]
           A          B          C
0  13.315865   7.152790 -15.454003
1  -0.083838   6.213360  -7.200856
2   2.655116   1.085485   0.042914
3  -1.746002   4.330262  12.030374
4  -9.650657  10.282741   2.286301
5   4.451376 -11.366022   1.351369
6  14.845370 -10.798049 -19.777283
7 -17.433723   2.660702  23.849673
8  11.236913  16.726222   0.991492
9  13.979964  -2.712480   6.132042

Wir können dann Ausreißer mithilfe der Z-Wert-Methode oder der Interquartilsabstandsmethode definieren und entfernen:

Z-Wert-Methode:

#Finden Sie den absoluten Wert des Z-Werts für jede Beobachtung
z = np.abs(stats.zscore(data))
# Halten Sie nur Zeilen im Dataframe, bei denen alle Z-Werte kleiner als der absolute Wert 3 sind 
data_clean = data[(z<3).all(axis=1)]
#finden Sie, wie viele Zeilen noch im Dataframe verbleiben 
data_clean.shape

(99,3)

Interquartilsabstandsmethode:

#Finden Sie Q1, Q3 und den Interquartilsabstand für jede Spalte
Q1 = data.quantile(q=.25)
Q3 = data.quantile(q=.75)
(engl. Interquartile Range = IQR) = data.apply(stats.iqr)

# Behalten Sie nur Zeilen im Dataframe bei, deren Werte innerhalb von 1,5 * (engl. Interquartile Range = IQR) von Q1 und Q3 liegen
data_clean = data[~((data  (Q3+1.5*(engl. Interquartile Range = IQR)))).any(axis=1)]
#finden Sie, wie viele Zeilen noch im Dataframe verbleiben 
data_clean.shape

(89,3)

Wir können sehen, dass die Z-Wert-Methode eine Beobachtung als Ausreißer identifizierte und entfernte, während die Interquartilsabstandsmethode 11 Gesamtbeobachtungen als Ausreißer identifizierte und entfernte.

Wann werden Ausreißer entfernt?

Wenn ein oder mehrere Ausreißer in Ihren Daten vorhanden sind, sollten Sie zunächst sicherstellen, dass sie nicht auf Dateneingabefehler zurückzuführen sind. Manchmal gibt eine Person beim Aufzeichnen von Daten einfach den falschen Datenwert ein.

Wenn sich herausstellt, dass der Ausreißer auf einen Dateneingabefehler zurückzuführen ist, können Sie ihm einen neuen Wert zuweisen, z. B. den Mittelwert oder den Median des Datensatzes.

Wenn der Wert ein echter Ausreißer ist, können Sie ihn entfernen, wenn er erhebliche Auswirkungen auf Ihre Gesamtanalyse hat. Stellen Sie einfach sicher, dass Sie in Ihrem Abschlussbericht oder Ihrer Analyse erwähnen, dass Sie einen Ausreißer entfernt haben.

Zusätzliche Ressourcen

Wenn Sie mit mehreren Variablen gleichzeitig arbeiten, können Sie den Mahalanobis-Abstand verwenden, um Ausreißer zu erkennen.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: