Kurs
Hast du schon mal einen t-Test gerechnet, einen sauberen p-Wert bekommen – und erst danach gemerkt, dass du nie geprüft hast, ob deine Daten normalverteilt sind?
Statistische Tests sagen dir nicht, wenn ihre Annahmen verletzt werden. Sie liefern einfach nur einen Wert zurück. Das Problem: Tests wie t-Tests und ANOVA setzen eine Normalverteilung deiner Daten voraus. Ist das nicht der Fall, baust du deine Schlussfolgerungen auf wackeligem Fundament.
Normalitätstests geben dir eine Möglichkeit, diese Annahme zu überprüfen. Es gibt visuelle und statistische Methoden – zu wissen, wann du welche nutzt und wie du die Ergebnisse liest, sorgt dafür, dass du selbstbewusst zu deinen Ergebnissen stehen kannst.
In diesem Artikel zeige ich dir die gängigsten visuellen und statistischen Methoden, um die Normalität zu prüfen, wie du sie in Python und R ausführst und was zu tun ist, wenn deine Daten den Test nicht bestehen.
Was Normalverteilung in der Praxis bedeutet
Die Glockenkurve hast du sicher schon gesehen – aber was heißt das konkret für deine Daten?
Eine Normalverteilung ist ein Muster, bei dem die meisten Werte um das Zentrum herum liegen und nach außen hin in beide Richtungen seltener werden. Als Diagramm ergibt sich eine symmetrische, glockenförmige Kurve. Die linke Seite spiegelt die rechte.

Diagramm einer Normalverteilung
Das Besondere an der Normalverteilung: Mittelwert, Median und Modus liegen alle auf demselben Punkt – dem Zentrum der Glocke. Es gibt keine Schiefe nach links oder rechts. Mit anderen Worten: Die Daten sind ausgewogen.
Das begegnet in Messdaten aus der realen Welt ständig: Körpergröße, Blutdruckmessungen, Fertigungstoleranzen, Testergebnisse – all das folgt mit genügend Stichproben meist einer Normalverteilung. Natürliche Variation in biologischen und physikalischen Systemen erzeugt typischerweise diese Form.
Aber längst nicht alle Daten verhalten sich so. Einkommensdaten sind rechtsschief. Website-Antwortzeiten haben lange Ausläufer.
In der Praxis kann es richtig schiefgehen, wenn du Normalität einfach voraussetzt, ohne sie zu prüfen.
Warum es wichtig ist, auf Normalität zu testen
Das Problem, wenn du Normalität nicht prüfst: Die meisten gängigen statistischen Tests – t-Tests, ANOVA – sind parametrische Tests.
Das heißt, sie basieren auf Annahmen über die Verteilung deiner Daten. Normalität ist eine davon. Wenn diese Annahme bricht, bricht auch die Mathematik dahinter. Der Test liefert dir zwar weiterhin ein Ergebnis, aber das kann dich zu falschen Schlüssen führen.
Parametrische Tests arbeiten mit mathematischen Annahmen über die Grundgesamtheit, aus der deine Stichprobe stammt. Stimmen diese Annahmen, sind die Tests nützlich und präzise. Stimmen sie nicht, werden p-Werte unzuverlässig und belastbare Schlüsse sind nicht möglich.
An dieser Stelle kommen nichtparametrische Tests ins Spiel.
Tests wie Mann-Whitney U oder Kruskal-Wallis setzen keine Normalverteilung voraus – sie arbeiten mit Rängen statt mit Rohwerten. Sie sind flexibler, aber bei normalverteilten Daten oft weniger hilfreich. Unnötig auf sie umzusteigen, ist also keine Lösung.
Der eigentliche Fehler vieler Einsteigerinnen und Einsteiger in Data Science: Den Check komplett auslassen.
Ein Normalitätstest braucht nur ein paar Zeilen Code. Nicht zu testen heißt, du vertraust blind auf deine Daten – oder denkst gar nicht erst darüber nach.
Visuelle Methoden zur Prüfung der Normalität
Bevor du einen formalen Test startest, visualisiere deine Daten. Bilder sagen dir viel über das, womit du es zu tun hast.
Histogramm
Ein Histogramm zeigt dir die Form deiner Verteilung.

Beispiel-Histogramm
Wenn deine Daten normalverteilt sind, sollte das Histogramm wie eine Glocke aussehen – in der Mitte hoch, zu beiden Seiten symmetrisch abfallend. Achte auf Schiefe (Skewness): Ein langer rechter Ausläufer bedeutet Rechtsschiefe, ein linker Ausläufer Linksschiefe. Beides deutet darauf hin, dass deine Daten nicht normal sind.
Das Problem bei Histogrammen: Die Form hängt von der Klassenbreite ab.
- Zu wenige Klassen – die Verteilung wirkt flach
- Zu viele – sie wirkt ausgefranst
Probiere immer mehrere Klassengrößen aus, bevor du Schlüsse ziehst.
Q-Q-Plot
Ein Q-Q-Plot (Quantil-Quantil-Plot) vergleicht die Quantile deiner Daten mit den Quantilen einer theoretischen Normalverteilung.

Beispiel-Q-Q-Plot
Sind deine Daten normal, liegen die Punkte entlang einer geraden Diagonalen. Abweichungen davon zeigen, wo die Normalität bricht. Nach oben gebogene Enden deuten auf schwere Ausläufer hin. Eine S-Form weist auf Schiefe hin.
Q-Q-Plots sind präziser als Histogramme, um subtile Abweichungen – insbesondere in den Ausläufern – zu erkennen, die Histogramme oft übersehen.
Boxplot
Ein Boxplot zeigt Median, Streuung und Ausreißer auf einen Blick.

Beispiel-Boxplot
Bei einer normalverteilten Stichprobe liegt der Median ungefähr in der Mitte der Box, und die „Whisker“ sind zu beiden Seiten etwa gleich lang. Liegt der Median nicht mittig oder ist ein Whisker deutlich länger, spricht das für Schiefe. Punkte außerhalb der Whisker sind Ausreißer.
Das generelle Problem bei Visualisierungen: Sie sind subjektiv. Zwei Personen können dasselbe Histogramm sehen und zu unterschiedlichen Einschätzungen kommen. Nutze Visuals, um ein Gefühl für deine Daten zu bekommen, und bestätige dann mit einem formalen Test.
Gängige Normalitätstests in der Statistik
Es gibt keinen einen Normalitätstest, der immer am besten funktioniert. Die richtige Wahl hängt von der Stichprobengröße und deinem Ziel ab.
Shapiro-Wilk-Test
Der Shapiro-Wilk-Test ist die erste Wahl für kleine bis mittlere Stichproben – in der Regel bis ein paar Hundert Beobachtungen.
Er misst, wie gut deine Daten zu einer Normalverteilung passen, indem er beobachtete Werte mit den erwarteten Werten unter Normalität vergleicht. Er ist weit verbreitet, gut verstanden und in allen großen Statistikbibliotheken verfügbar. Für die meisten Analysen ist das der erste Griff.
Seine Hauptgrenze: Bei großen Stichproben wird er übersensibel und markiert winzige, praktisch irrelevante Abweichungen als statistisch signifikant.
Kolmogorov-Smirnov-Test
Der Kolmogorov-Smirnov-(KS-)Test vergleicht die kumulative Verteilung deiner Stichprobe mit einer theoretischen – hier der Normalverteilung.
Er ist allgemeiner als Shapiro-Wilk und kann gegen jede Verteilung testen, nicht nur gegen die Normalverteilung. Für Normalitätstests ist der KS-Test weniger mächtig, erkennt also subtile Abweichungen seltener. Außerdem musst du die Verteilungsparameter vorab angeben, was Verzerrungen einführt, wenn du sie aus denselben Daten schätzt.
Nutze ihn als schnellen, allgemeinen Check – nicht als primären Normalitätstest.
Anderson-Darling-Test
Der Anderson-Darling-Test ist eine Variante des KS-Tests mit einem wichtigen Unterschied: Er gewichtet die Ausläufer der Verteilung stärker.
Dadurch erkennt er Abweichungen an den Rändern besser – schwere Ausläufer, Ausreißer oder nichtnormales Verhalten, das der KS-Test übersehen würde. Wenn du empfindlich auf das Verhalten in den Ausläufern achten musst, ist Anderson-Darling eine gute Wahl.
D'Agostino-Pearson-Test
Der D'Agostino-Pearson-Test geht anders vor.
Er misst zwei Eigenschaften deiner Daten: Schiefe (Asymmetrie) und Kurtosis (wie schwer oder leicht die Ausläufer sind).
Beides wird zu einer einzigen Teststatistik kombiniert. Das hilft, nicht nur festzustellen, ob Normalität verletzt ist, sondern auch warum. Er funktioniert am besten bei größeren Stichproben, bei denen Schiefe- und Kurtosis-Schätzungen verlässlich sind.
Jarque-Bera-Test
Der Jarque-Bera-Test nutzt ebenfalls Schiefe und Kurtosis, ähnlich wie D'Agostino-Pearson.
Er ist in der Ökonometrie und Zeitreihenanalyse verbreitet. Wie D'Agostino-Pearson braucht er eine ausreichend große Stichprobe für verlässliche Ergebnisse. Bei kleinen Stichproben ist der Test nicht besonders zuverlässig. In Finanz- oder Wirtschafts-Kontexten wirst du ihn häufig sehen.
Kurz gesagt: Starte bei kleinen Stichproben mit Shapiro-Wilk und kombiniere mit einem Q-Q-Plot. Nutze Anderson-Darling, wenn die Ausläufer wichtig sind, und D'Agostino-Pearson, wenn du die Art der Abweichung verstehen willst.
So interpretierst du Ergebnisse von Normalitätstests
Jeder Normalitätstest ist ein Hypothesentest.
Die Nullhypothese lautet stets: Deine Daten sind normalverteilt. Der Test fragt dann: Wie wahrscheinlich ist diese Nullhypothese angesichts der beobachteten Daten?
Die Antwort kommt als p-Wert:
- p > 0,05 – du hast nicht genug Evidenz, um Normalität zu verwerfen. Gehe von Normalverteilung aus und nutze parametrische Tests
- p < 0,05 – die Abweichung von Normalität ist statistisch nachweisbar. Verwirf die Normalitätsannahme
Klingt einfach, aber hier passieren viele Fehler.
Ein niedriger p-Wert sagt nicht, wie stark deine Daten von Normalität abweichen – nur, dass eine Abweichung erkannt wurde. Bei großen Stichproben werden Normalitätstests extrem sensibel und markieren winzige, praktisch irrelevante Abweichungen als signifikant.
Das Gegenproblem gibt es auch: Bei kleinen Stichproben können selbst sichtbar schiefe Daten p > 0,05 liefern, weil der Test zu wenig Power hat, um die Abweichung zu erkennen.
Statistische Signifikanz und praktische Relevanz sind nicht dasselbe.
Ein p-Wert sagt dir, ob eine Abweichung von Normalität existiert. Er sagt nicht, ob sie für deine konkrete Analyse relevant ist. Kombiniere dein Testergebnis immer mit einem Q-Q-Plot – folgen die Punkte der Linie eng, sind deine Daten vermutlich „normal genug“, egal, was der p-Wert sagt.
Normalitätstests in Python
Pythons scipy.stats Modul liefert dir alles, was du für Normalitätstests in wenigen Zeilen Code brauchst.
Für alle folgenden Beispiele nutze ich denselben Datensatz – 100 Stichproben aus einer Normalverteilung –, damit du den Code mitlaufen lassen kannst.
import numpy as np
from scipy import stats
np.random.seed(42)
data = np.random.normal(loc=0, scale=1, size=100)
Shapiro-Wilk-Test
Nutze shapiro() als ersten Check, besonders bei kleineren Datensätzen.
stat, p_value = stats.shapiro(data)
print(f"Statistic: {stat:.4f}, p-value: {p_value:.4f}")
Das bekommst du als Ausgabe:

Ausgabe eines Shapiro-Wilk-Tests in Python
Der p-Wert liegt deutlich über 0,05, daher verwerfen wir Normalität nicht. Die Daten wirken normal – was Sinn ergibt, da wir sie aus einer Normalverteilung erzeugt haben.
Kolmogorov-Smirnov-Test
kstest() vergleicht deine Stichprobe mit einer benannten Verteilung. Für Normalität übergib "norm" zusammen mit Mittelwert und Standardabweichung der Stichprobe.
stat, p_value = stats.kstest(data, 'norm', args=(data.mean(), data.std()))
print(f"Statistic: {stat:.4f}, p-value: {p_value:.4f}")

Ausgabe eines Kolmogorov-Smirnov-Tests in Python
Wieder p > 0,05 – kein Hinweis gegen Normalität.
Übergebe bei diesem Test in Python Mittelwert und Standardabweichung immer explizit über args. Wenn du das weglässt, nimmt kstest() eine Standardnormalverteilung (Mean=0, Std=1) an – das liefert unzuverlässige Ergebnisse, sofern deine Daten nicht bereits standardisiert sind.
D'Agostino-Pearson-Test
normaltest() prüft Normalität, indem Schiefe und Kurtosis gemeinsam getestet werden. Am besten geeignet für größere Stichproben.
stat, p_value = stats.normaltest(data)
print(f"Statistic: {stat:.4f}, p-value: {p_value:.4f}")

Ausgabe eines D'Agostino-Pearson-Tests in Python
Erneut p > 0,05. Die Daten bestehen hier alle drei Tests – erwartbar, da ich sie normal generiert habe. In der Praxis widersprechen sich die Tests oft, besonders um die 0,05-Grenze. In solchen Fällen verlasse dich auf den Q-Q-Plot für die Entscheidung.
Normalitätstests in R
R bringt Funktionen für Normalitätstests direkt mit. Für die Basics brauchst du keine zusätzlichen Pakete.
Wie in den Python-Beispielen nutze ich auch hier 100 Stichproben aus einer Normalverteilung.
set.seed(42)
data <- rnorm(100, mean = 0, sd = 1)
Shapiro-Wilk-Test
shapiro.test() ist die erste Wahl für kleine bis mittlere Stichproben. Übergebe einfach deinen Datenvektor:
shapiro.test(data)

Ausgabe eines Shapiro-Wilk-Tests in R
p > 0,05 – kein Hinweis gegen Normalität. Die W-Statistik liegt zwischen 0 und 1; Werte nahe 1 deuten auf eine enge Annäherung an die Normalverteilung hin.
Kolmogorov-Smirnov-Test
ks.test() vergleicht deine Stichprobe mit einer theoretischen Verteilung. Für Normalität gib "pnorm" an und übergib Stichprobenmittelwert und -standardabweichung.
ks.test(data, "pnorm", mean(data), sd(data))

Ausgabe eines Kolmogorov-Smirnov-Tests in R
Wieder p > 0,05. Die gleiche Einschränkung wie in Python: Übergib immer mean(data) und sd(data). Sonst wird gegen die Standardnormalverteilung getestet – das verfälscht das Ergebnis, solange deine Daten nicht standardisiert sind.
Q-Q-Plot
Mit qqnorm() und qqline() erzeugst du in R einen Q-Q-Plot in zwei Zeilen.
qqnorm(data, main = "Q-Q Plot")
qqline(data, col = "steelblue", lwd = 2)

Q-Q-Plot in R
qqnorm() stellt die Stichprobenquantile den theoretischen Normalquantilen gegenüber. qqline() zeichnet die Referenzlinie. Folgen die Punkte der Linie eng, verhalten sich deine Daten normal. Abweichungen an den Enden signalisieren Ausläuferprobleme, die du prüfen solltest.
Was tun, wenn Daten nicht normal sind
Wenn deine Daten einen Normalitätstest nicht bestehen, hast du mehrere gute Optionen.
Daten transformieren
Manchmal hilft eine Transformation, damit sich die Daten normaler verhalten – dann kannst du deine ursprünglichen Tests auf den transformierten Werten anwenden.
Log-Transformation ist am gängigsten. Sie funktioniert gut bei rechtsschiefen Daten – z. B. Einkommen, Antwortzeiten oder biologischen Messungen mit langem rechten Ausläufer. In Python: np.log(data), in R: log(data).
Quadratwurzel-Transformation ist eine mildere Option bei moderater Schiefe – hilfreich, wenn deine Daten Nullen enthalten (Logarithmen von 0 sind nicht definiert). In Python: np.sqrt(data), in R: sqrt(data).
Nach der Transformation führst du den Normalitätstest erneut aus. Besteht die transformierte Variable, kannst du mit parametrischen Tests fortfahren – denke aber daran, Ergebnisse in der transformierten Skala zu interpretieren.
Nichtparametrische Tests verwenden
Wenn eine Transformation nicht hilft oder nicht sinnvoll ist, wechsle zu nichtparametrischen Tests. Diese setzen keine Normalverteilung voraus – sie arbeiten mit Rängen statt Rohwerten.
- Mann-Whitney-U-Test als Alternative zum t-Test für unabhängige Stichproben. Nutze ihn bei zwei Gruppen
- Kruskal-Wallis-Test als nichtparametrisches Pendant zur einfaktoriellen ANOVA. Nutze ihn bei drei oder mehr Gruppen
Beide gibt es in scipy.stats (mannwhitneyu() und kruskal()) sowie im R-Basispaket (wilcox.test() und kruskal.test()).
Auf große Stichproben bauen
Mit ausreichend großen Stichproben kannst du das Normalitätsthema oft entspannter sehen.
Der zentralen Grenzwertsatz zufolge nähert sich die Stichprobenverteilung des Mittelwerts mit wachsender Stichprobe einer Normalverteilung an – unabhängig von der Ausgangsverteilung. In der Praxis heißt das: Parametrische Tests sind bei großen Stichproben oft robust, auch wenn die Daten nicht perfekt normal sind.
Häufige Fehler beim Testen auf Normalität
Normalitätstests sind einfach – du hast gesehen, dass es oft nur eine Codezeile ist. Trotzdem gibt es typische Stolperfallen.
Hier sind Fehler, die Einsteigerinnen und Einsteiger in Data Science häufig machen:
- Sich nur auf p-Werte verlassen: Ein p-Wert zeigt, ob eine Abweichung erkannt wurde, nicht wie groß sie ist oder ob sie relevant ist. p > 0,05 als grünes Licht und p < 0,05 als rotes Licht zu behandeln, ist zu grob. Kombiniere das Ergebnis immer mit einem Q-Q-Plot
- Stichprobengröße ignorieren: Bei kleinen Stichproben können Tests echte Abweichungen übersehen und p > 0,05 liefern, obwohl die Daten sichtbar schief sind. Bei großen Stichproben werden Tests so sensibel, dass sie winzige, irrelevante Abweichungen als signifikant markieren. Die Stichprobengröße verändert die Bedeutung des p-Werts
- Übertesten der Normalität: Nicht jede Analyse braucht einen formalen Normalitätstest. In der Exploration reichen meist Histogramm und Q-Q-Plot
- Leichte Abweichungen überinterpretieren: Reale Daten sind fast nie perfekt normal. Eine kleine Abweichung von der Referenzlinie im Q-Q-Plot oder ein p-Wert knapp unter 0,05 heißt nicht, dass die Daten weit von Normalität entfernt sind. Die Frage ist, ob sie für deinen Test normal genug sind
Fazit: Der Normalitätstest ist nur ein einzelner Check. Nutze ihn als einen von mehreren Inputs – nicht als letzte Instanz.
Wann du auf Normalitätstests verzichten kannst
Normalitätstests sind nicht immer nötig. Unter Zeitdruck zu wissen, wann du sie weglassen kannst, spart Zeit ohne Qualitätsverlust.
Große Datensätze
Bei großen Stichproben garantiert der zentrale Grenzwertsatz, dass die Verteilung des Mittelwerts näherungsweise normal ist – unabhängig von der Form der Rohdaten. Parametrische Tests sind dann in der Regel zuverlässig, ein formaler Normalitätstest bringt wenig Mehrwert.
Einige Verfahren sind zudem robust gegenüber Nicht-Normalität. Methoden wie lineare Regression funktionieren bei angemessenen Stichprobengrößen oft gut, solange Verstöße nicht extrem sind. (Lineare Regression setzt Normalität in den Residuen voraus.)
Explorative Analysen
Wenn du Muster sichtest, ein Gefühl für Daten entwickelst oder Variablen auswählst, reichen ein schnelles Histogramm oder Q-Q-Plot. Formale Tests gehören in die konfirmatorische Analyse – wenn deine Schlüsse belastbar sein müssen.
Denk daran: Normalitätstests sollen dich vor falschen Schlüssen schützen. Wenn ein falscher Schluss keine Folgen hat oder deine Methode nicht von Normalität abhängt, ist der Test optional.
Fazit
Beim Normalitätstest geht es darum zu prüfen, ob deine Annahmen ausreichend gut halten, um den Ergebnissen zu vertrauen.
Kein Datensatz ist perfekt normal. Ziel ist, das Verhalten deiner Daten zu verstehen und Methoden passend zu wählen. Ein Q-Q-Plot zeigt dir, wo die Abweichungen liegen. Ein formaler Test sagt dir, ob sie statistisch nachweisbar sind. Zusammen geben beide ein klareres Bild als jeweils allein.
Der richtige Test hängt vom Kontext ab. Nutze Shapiro-Wilk bei kleinen Stichproben, Anderson-Darling, wenn die Ausläufer zählen, nichtparametrische Alternativen, wenn Normalität nicht angenommen werden kann. Und manchmal – bei großen Stichproben oder robusten Methoden – brauchst du gar keinen Test.
Findest du p-Werte insgesamt verwirrend? Lies unseren Artikel Hypothesis Testing Made Easy und stelle sicher, dass du sie korrekt interpretierst.
Normalitätstest: Häufige Fragen
Was ist ein Normalitätstest?
Ein Normalitätstest ist eine statistische Methode, mit der du prüfst, ob deine Daten einer normalen (gaußschen) Verteilung folgen. Viele gängige statistische Tests – etwa t-Tests, ANOVA und lineare Regression – setzen Normalität voraus. Diese Annahme vor der Analyse zu prüfen, hilft dir, falsche Schlussfolgerungen zu vermeiden.
Muss ich immer auf Normalität testen?
Nicht immer. Bei großen Stichproben sorgt der zentrale Grenzwertsatz dafür, dass parametrische Tests unabhängig von der zugrunde liegenden Verteilung zuverlässig sind. Für explorative Analysen reichen ein schnelles Histogramm oder ein Q-Q-Plot meist aus – formale Normalitätstests sind vor allem in der konfirmatorischen Analyse sinnvoll, wenn deine Ergebnisse belastbar sein müssen.
Was soll ich tun, wenn meine Daten den Normalitätstest nicht bestehen?
Du hast mehrere Optionen. Du kannst die Daten per Log- oder Quadratwurzel-Transformation umformen und dann erneut testen. Wenn die Transformation nicht hilft, wechsle zu nichtparametrischen Tests wie Mann-Whitney U (für zwei Gruppen) oder Kruskal-Wallis (für drei oder mehr Gruppen), die keine Normalverteilung voraussetzen.
Was ist der Unterschied zwischen Shapiro-Wilk und Kolmogorov-Smirnov?
Shapiro-Wilk ist speziell für Normalitätstests entwickelt und eignet sich am besten für kleine bis mittlere Stichproben. Der Kolmogorov-Smirnov-Test ist allgemeiner – er kann eine Stichprobe mit jeder theoretischen Verteilung vergleichen, nicht nur mit der Normalverteilung –, ist aber für Normalitätstests weniger mächtig und übersieht eher subtile Abweichungen.
Wie interpretiere ich einen Q-Q-Plot im Hinblick auf Normalität?
Ein Q-Q-Plot vergleicht die Quantile deiner Daten mit den Quantilen einer theoretischen Normalverteilung. Fallen die Punkte nahe an die diagonale Referenzlinie, verhalten sich deine Daten normal. Abweichungen an den Enden der Linie deuten auf Probleme in den Ausläufern hin – eine S-Form weist auf Schiefe hin, während an beiden Enden weggebogene Punkte auf schwerere oder leichtere Ausläufer als bei der Normalverteilung hindeuten.


