Um Ausreißer in einem Boxplot zu bereinigen, gibt es verschiedene Ansätze, die je nach Kontext und Zielsetzung angewendet werden können: 1. **Identifikation und Entfernung von Ausreißern:** - **Identifikation:** Ausreißer werden in einem Boxplot als Punkte außerhalb der "Whiskers" (den Linien, die von der Box ausgehen) dargestellt. Diese Whiskers erstrecken sich normalerweise bis zum 1,5-fachen des Interquartilsabstands (IQR) über und unter dem ersten und dritten Quartil. - **Entfernung:** Nachdem die Ausreißer identifiziert wurden, können sie aus dem Datensatz entfernt werden. Dies kann manuell oder durch ein Skript erfolgen. 2. **Transformation der Daten:** - **Log-Transformation:** Eine logarithmische Transformation kann helfen, die Daten zu normalisieren und die Auswirkungen von Ausreißern zu reduzieren. - **Z-Transformation:** Standardisierung der Daten, um sie auf eine gemeinsame Skala zu bringen, kann ebenfalls helfen, Ausreißer zu mildern. 3. **Robuste Methoden:** - **Winsorisierung:** Hierbei werden die Ausreißer auf den nächstgelegenen Wert innerhalb der akzeptablen Datenreichweite gesetzt. - **Robuste statistische Methoden:** Verwende Methoden, die weniger empfindlich gegenüber Ausreißern sind, wie z.B. der Median anstelle des Mittelwerts. 4. **Visualisierungstechniken:** - **Anpassung der Whiskers:** Die Definition der Whiskers kann angepasst werden, um weniger empfindlich auf Ausreißer zu reagieren, z.B. durch Erhöhung des Multiplikators des IQR. 5. **Datenbereinigungstools und -bibliotheken:** - **Python:** Bibliotheken wie `pandas` und `numpy` bieten Funktionen zur Identifikation und Entfernung von Ausreißern. - **R:** Pakete wie `dplyr` und `tidyr` können zur Datenbereinigung verwendet werden. Beispiel in Python: ```python import pandas as pd # Beispiel-Daten data = {'Werte': [1, 2, 2, 3, 4, 5, 6, 7, 8, 100]} df = pd.DataFrame(data) # Berechnung der Quartile und des IQR Q1 = df['Werte'].quantile(0.25) Q3 = df['Werte'].quantile(0.75) IQR = Q3 - Q1 # Definition der Grenzen für Ausreißer untere_grenze = Q1 - 1.5 * IQR obere_grenze = Q3 + 1.5 * IQR # Entfernen der Ausreißer bereinigte_df = df[(df['Werte'] >= untere_grenze) & (df['Werte'] <= obere_grenze)] print(bereinigte_df) ``` Dieser Code identifiziert und entfernt Ausreißer basierend auf dem IQR.