So entfernen sie ausreißer in python


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 gängige Methoden, dies zu tun:

1. Nutzen Sie den Interquartilbereich.

Der Interquartilbereich (IQR) ist die Differenz zwischen dem 75. Perzentil (Q3) und dem 25. Perzentil (Q1) in einem Datensatz. Es misst die Verteilung der durchschnittlichen 50 % der Werte.

Sie können eine Beobachtung als Ausreißer definieren, wenn sie das 1,5-fache des Interquartilbereichs über dem dritten Quartil (Q3) oder das 1,5-fache des Interquartilbereichs unter dem ersten Quartil (Q1) beträgt.

Ausreißer = Beobachtungen > Q3 + 1,5*IQR oder Q1 – 1,5*IQR

2. Verwenden Sie Z-Scores.

Ein Z-Score sagt Ihnen, wie viele Standardabweichungen ein bestimmter Wert vom Mittelwert hat. Wir verwenden die folgende Formel, um einen Z-Score zu berechnen:

z = (X – μ) / σ

Gold:

  • X ist ein einzelner Rohdatenwert
  • μ ist der Bevölkerungsmittelwert
  • σ ist die Populationsstandardabweichung

Sie können eine Beobachtung als Ausreißer definieren, wenn ihr Z-Score kleiner als -3 oder größer als 3 ist.

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

So entfernen Sie Ausreißer in Python

Sobald Sie entschieden haben, was Sie als Ausreißer betrachten, können Sie diese identifizieren und aus einem Datensatz entfernen. Um dies zu veranschaulichen, verwenden wir den folgenden Pandas-DataFrame:

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

#create dataframe with three columns 'A', 'B', 'C'
np.random.seed(10)
data = pd.DataFrame(np.random.randint(0, 10, size=(100, 3)), columns=['A', 'B', 'C'])

#view first 10 rows
data[:10]

           ABC
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

Anschließend können wir Ausreißer mithilfe der Z-Score-Methode oder der Interquartilbereichsmethode definieren und entfernen:

Z-Score-Methode:

 #find absolute value of z-score for each observation
z = np.abs(stats.zscore(data))

#only keep rows in dataframe with all z-scores less than absolute value of 3 
data_clean = data[(z<3).all(axis=1)]

#find how many rows are left in the dataframe 
data_clean.shape

(99.3)

Interquartilbereichsmethode:

 #find Q1, Q3, and interquartile range for each column
Q1 = data.quantile(q=.25)
Q3 = data.quantile(q=.75)
IQR = data.apply(stats.iqr)

#only keep rows in dataframe that have values within 1.5*IQR of Q1 and Q3
data_clean = data[~((data < (Q1-1.5*IQR)) | (data > (Q3+1.5*IQR))).any(axis=1)]

#find how many rows are left in the dataframe 
data_clean.shape

(89.3)

Wir können sehen, dass die Za-Score-Methode eine Beobachtung als Ausreißer identifizierte und entfernte, während die Interquartilbereichsmethode insgesamt 11 Beobachtungen als Ausreißer identifizierte und entfernte.

Wann Ausreißer entfernt werden sollten

Wenn in Ihren Daten ein oder mehrere Ausreißer vorhanden sind, müssen Sie zunächst sicherstellen, dass diese nicht auf einen Dateneingabefehler zurückzuführen sind. Manchmal gibt eine Person beim Speichern der Daten einfach den falschen Datenwert ein.

Wenn sich herausstellt, dass der Ausreißer das Ergebnis eines Dateneingabefehlers ist, können Sie ihm einen neuen Wert zuweisen, beispielsweise den Mittelwert oder Median des Datensatzes.

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

Zusätzliche Ressourcen

Wenn Sie mit mehreren Variablen gleichzeitig arbeiten, möchten Sie möglicherweise die Mahalanobis-Distanz verwenden, um Ausreißer zu erkennen.

Einen Kommentar hinzufügen

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