In diesem Artikel wird die Kunst der Anwendung robuster Statistiken in Datenwissenschaftsprozessen beleuchtet: Es wird aufgezeigt, was zu tun ist, wenn Daten Tests nicht bestehen, weil sie die standardmäßigen Annahmen nicht erfüllen.
Von Iván Palomares Carrascosa, Technischer Content-Spezialist, veröffentlicht am 1. Mai 2026 im Bereich Datenwissenschaft.
Einführung
Eine harte Wahrheit zu Beginn: Die in Lehrbüchern vermittelte Datenwissenschaft erweist sich in der realen Welt oft als irreführend. Konzepte und Techniken werden anhand sorgfältig ausgewählter, schön verteilter Datenvariablen gelehrt, doch sobald wir uns in die Realität echter Projekte begeben, treffen wir auf zahlreiche Ausreißer, unangemessen verzerrte Verteilungen und unkontrollierbare Varianzen.
Ein vorhergehender Artikel über den Aufbau einer explorativen Datenanalyse (EDA) Pipeline mit Pingouin zeigte, wie man durch Tests Fälle erkennt, in denen die Daten verschiedene Annahmen wie Homoskedastizität und Normalverteilung verletzen. Aber was, wenn die Tests fehlschlagen? Die Daten einfach wegzuwerfen ist nicht die Lösung: Robustheit ist gefragt.
Dieser Artikel beleuchtet die Kunst der Anwendung robuster Statistiken in Datenwissenschaftsprozessen. Diese mathematischen Methoden sind speziell darauf ausgelegt, zuverlässige und gültige Ergebnisse zu liefern, selbst wenn die Daten die klassischen Annahmen nicht erfüllen oder von Ausreißern und Rauschen durchzogen sind. Durch einen „Wähle dein eigenes Abenteuer“-Ansatz werden wir eine Reihe von Szenarien mit Python’s Pingouin erstellen, um die schwierigsten Aspekte der Daten zu bewältigen, die Ihnen in Ihrer täglichen Arbeit begegnen können.
Erste Schritte
Beginnen wir mit der Installation (falls erforderlich) und dem Import von Pingouin und Pandas, gefolgt von dem Laden des verfügbaren Weinqualitätsdatensatzes.
!pip install pingouin pandas
import pandas as pd
import pingouin as pg
# Laden unseres unordentlichen, realitätsnahen Datensatzes, der Proben von Rot- und Weißwein enthält
url = "https://raw.githubusercontent.com/gakudo-ai/open-datasets/refs/heads/main/wine-quality-white-and-red.csv"
df = pd.read_csv(url)
# Einen kleinen Blick darauf werfen, womit wir es zu tun haben
print(df.head())
Wenn Sie den vorherigen Artikel über Effiziente Python-Skripte zur Automatisierung der explorativen Datenanalyse gelesen haben, wissen Sie bereits, dass dies ein notorisch unordentlicher Datensatz ist, der mehrere gängige Annahmen nicht erfüllt. Nun werden wir uns auf drei verschiedene „Abenteuer“ begeben, die jeweils ein Szenario, ein zentrales Problem und einen vorgeschlagenen robusten Fix zur Lösung präsentieren.
Abenteuer 1: Wenn der Normalitätstest fehlschlägt
Angenommen, wir führen Normalitätstests für zwei Gruppen durch: Weißweinproben und Rotweinproben.
white_wine_alcohol = df[df['type'] == 'white']['alcohol']
red_wine_alcohol = df[df['type'] == 'red']['alcohol']
print("Normalitätstest für den Alkoholgehalt von Weißwein:")
print(pg.normality(white_wine_alcohol))
print("\nNormalitätstest für den Alkoholgehalt von Rotwein:")
print(pg.normality(red_wine_alcohol))
Sie werden feststellen, dass keine der Verteilungen normal ist, mit extrem niedrigen p-Werten. Obwohl die Abweichung von der Normalverteilung nicht direkt auf Ausreißer oder Schiefe hinweist, deutet eine starke Abweichung oft darauf hin, dass solche Merkmale in den Daten vorhanden sein könnten. Der Vergleich der Mittelwerte durch einen t-Test wäre in dieser Situation riskant und würde wahrscheinlich zu unzuverlässigen Ergebnissen führen.
Die robuste Lösung für ein solches Szenario ist der Mann-Whitney U-Test. Anstatt die Mittelwerte zu vergleichen, vergleicht dieser Test die Ränge in den Daten – beispielsweise indem alle Weine in einer Gruppe nach ihrem Alkoholgehalt von niedrig nach hoch sortiert werden. Dieser rangbasierte Ansatz ist der entscheidende Trick, der Ausreißer ihrer manchmal gefährlichen Größe entblößt. So geht’s:
# Trennung unserer beiden Gruppen
red_wine = df[df['type'] == 'red']['alcohol']
white_wine = df[df['type'] == 'white']['alcohol']
# Durchführung des robusten Mann-Whitney U-Tests
mwu_results = pg.mwu(x=red_wine, y=white_wine)
print(mwu_results)
Ergebnis:
U_val alternative p_val RBC CLES
MWU 3829043.5 two-sided 0.181845 -0.022193 0.488903
Da der p-Wert nicht unter 0,05 liegt, gibt es keinen statistisch signifikanten Unterschied im Alkoholgehalt zwischen den beiden Weintypen – und diese Schlussfolgerung ist garantiert ausreißer- und schiefenfrei.
Abenteuer 2: Wenn der gepaarte t-Test fehlschlägt
Angenommen, Sie möchten nun zwei Messungen vergleichen, die von demselben Subjekt durchgeführt wurden – z.B. den Zuckergehalt eines Patienten vor und nach einem Medikamentenprototyp oder zwei Eigenschaften, die in derselben Flasche Wein gemessen wurden. Der Fokus liegt hier darauf, wie die Unterschiede zwischen den gepaarten Messungen verteilt sind. Wenn solche Unterschiede nicht normal verteilt sind, wird ein standardmäßiger gepaarter t-Test unzuverlässige Konfidenzintervalle liefern.
Die ideale Lösung in diesem Szenario ist der Wilcoxon-Vorzeichen-Rang-Test: der robuste Verwandte des gepaarten t-Tests, der funktioniert, indem er die Unterschiede zwischen den Spalten beobachtet und deren absolute Werte rangiert. In Pingouin wird dieser Test mit pg.wilcoxon() aufgerufen, wobei die beiden Spalten mit den gepaarten Messungen innerhalb desselben Subjekts übergeben werden – z.B. zwei Arten von Weinsäure.
# Durchführung des robusten Wilcoxon-Vorzeichen-Rang-Tests für gepaarte Daten
wilcoxon_results = pg.wilcoxon(x=df['fixed acidity'], y=df['volatile acidity'])
print(wilcoxon_results)
Ergebnis:
W_val alternative p_val RBC CLES
Wilcoxon 0.0 two-sided 0.0 1.0 1.0
Das obige Ergebnis zeigt einen statistisch signifikanten Unterschied oder eine „perfekte Trennung“ zwischen den beiden Messungen. Nicht nur, dass die beiden Weinmerkmale unterschiedlich sind, sie operieren auch auf völlig unterschiedlichen Magnitudenebenen im gesamten Datensatz.
Abenteuer 3: Wenn ANOVA fehlschlägt
In diesem dritten und letzten Abenteuer möchten wir überprüfen, ob die Restzuckergehalte in Weinen signifikant zwischen verschiedenen Qualitätsbewertungen variieren – beachten Sie, dass diese zwischen 3 und 9 liegen, ganzzahlige Werte annehmen und daher als diskrete Kategorien behandelt werden können.
Wenn der Levene-Test von Pingouin zur Homoskedastizität dramatisch fehlschlägt – beispielsweise weil die Zuckervarianz in mittelmäßigen Weinen groß, aber sehr klein in hochwertigen Weinen ist – könnte eine klassische einweg ANOVA irreführende Ergebnisse liefern, da dieser Test gleiche Varianzen unter den Gruppen annimmt.
Die Lösung ist Welch’s ANOVA, die Gruppen mit hoher Varianz bestraft und somit die Skalen ausgleicht und die Vergleiche fairer über mehrere Kategorien hinweg gestaltet. So führen Sie diese robuste Alternative zur traditionellen ANOVA mit Pingouin durch:
# Durchführung von Welch's ANOVA zum Vergleich von Zucker über Qualitätsbewertungen
welch_results = pg.welch_anova(data=df, dv='residual sugar', between='quality')
print(welch_results)
Ergebnis:
Source ddof1 ddof2 F p_unc np2
0 quality 6 54.507934 10.918282 5.937951e-08 0.008353
Selbst wenn eine einweg ANOVA aufgrund ungleicher Varianzen Schwierigkeiten gehabt hätte, liefert Welch’s ANOVA eine solide Schlussfolgerung. Der sehr kleine p-Wert ist ein klarer Beweis dafür, dass die Restzuckergehalte signifikant zwischen den Weinqualitätsbewertungen variieren. Beachten Sie jedoch, dass Zucker nur ein kleiner Teil des Puzzles ist, das die Weinqualität beeinflusst – ein Punkt, der durch den niedrigen Eta-Quadrat-Wert von 0.008 unterstrichen wird.
Fazit
Durch drei Beispiel-Szenarien, die jeweils ein Problem mit unordentlichen Daten mit einer robusten statistischen Strategie kombinieren, haben wir gelernt, dass es nicht bedeutet, ein versierter Datenwissenschaftler zu sein, perfekte Daten zu haben oder diese perfekt zu optimieren – es bedeutet zu wissen, was zu tun ist, wenn die Daten aus verschiedenen Gründen schwierig werden. Die Funktionen von Pingouin implementieren eine Vielzahl robuster Tests, die helfen, die Falle der fehlgeschlagenen Annahmen zu umgehen und mathematisch fundierte Erkenntnisse mit geringem zusätzlichen Aufwand zu gewinnen.
Iván Palomares Carrascosa ist ein führender Experte, Autor, Redner und Berater in den Bereichen KI, maschinelles Lernen, tiefes Lernen und LLMs. Er schult und leitet andere dabei, KI in der realen Welt zu nutzen.
Erhalten Sie das KOSTENLOSE E-Book ‚KDnuggets Artificial Intelligence Pocket Dictionary‘ zusammen mit dem führenden Newsletter zu Datenwissenschaft, maschinellem Lernen, KI und Analytik direkt in Ihr Postfach.
Für weitere Informationen über die Herausforderungen in der Datenwissenschaft und wie man sie überwindet, lesen Sie unseren Artikel We Used 5 Outlier Detection Methods on a Real Dataset: They Disagreed on 96% of Flagged Samples und den Der umfassende Leitfaden für Einsteiger in die Datenwissenschaft 2026: Wichtige Skills und Fallstricke.
„`
Bildquelle: ai-generated-gemini