Guides / normality test spss
How to test for normality in SPSS
The click path takes about twenty seconds. Reading the output correctly takes slightly longer, because the logic is reversed from every other test you run and the p-value misleads at both ends of the sample-size range. This page covers both.
Go to Analyze > Descriptive Statistics > Explore, move your outcome variable into the Dependent List, click Plots and tick 'Normality plots with tests', then click Continue and OK. SPSS produces a Tests of Normality table containing Shapiro-Wilk and Kolmogorov-Smirnov results, plus Q-Q plots. Read the Shapiro-Wilk significance value: above .05 indicates no significant departure from normality.
Step by step
The click path
Explore is the right dialog. Analyze → Nonparametric Tests → One Sample also produces a normality test, but Explore gives you the Q-Q plots as well, and you need those.
This is the variable whose distribution you are checking — the score, the measurement, the outcome. Not your predictors.
SPSS then tests normality separately within each group, which is what the assumption actually requires.
This single checkbox produces both the Tests of Normality table and the Q-Q plots. Without it you get descriptives only.
Analyze → Descriptive Statistics → Frequencies offers skewness and kurtosis, which people sometimes use as a normality check. It does not give you Shapiro-Wilk or a Q-Q plot, and interpreting skewness against arbitrary thresholds is a weaker approach. Use Explore.
Output
Reading the output
SPSS gives you two tests side by side. Use Shapiro-Wilk. It is more powerful than Kolmogorov-Smirnov across almost all realistic sample sizes, and the K-S version SPSS reports carries the Lilliefors correction but is still the weaker of the two.
The logic runs backwards from what you are used to. The null hypothesis here is that the data are normal, so:
| Shapiro-Wilk Sig. | Means | Reading |
|---|---|---|
> .05 | Not significant | No significant departure from normality — the usual outcome you want |
≤ .05 | Significant | The data depart from normality more than chance would produce |
The Statistic column for Shapiro-Wilk is W, and it runs from 0 to 1 measuring how closely the data track normality. It does not depend on sample size the way the p-value does. A W above about .95 indicates a close fit even when Sig. comes back significant — which happens routinely in large samples.
Diagnostics
Reading the Q-Q plot
The Q-Q plot is more informative than the test, because it shows you how the data depart rather than just whether they do. Points falling along the diagonal indicate approximate normality.
| Pattern on the plot | Means | Usual response |
|---|---|---|
| Points on the line | Approximately normal | Proceed |
| Curves upward at the right | Right skew | Log or square-root transform |
| Curves downward | Left skew | Square, or reflect then transform |
| S-shaped | Heavy tails | Robust or rank-based method |
| Points off at one end only | Outliers | Investigate those cases individually |
Even genuinely normal data produce Q-Q plots that stray at the extreme ends, because the most extreme observations are the most variable. Judge the middle of the plot strictly and the tails generously.
Comparing groups
Testing normality within groups
This is the step most often skipped, and it produces a specific false alarm.
If you are running an independent samples t-test or a one-way ANOVA, the assumption concerns the residuals — in practice, the distribution within each group. If the groups genuinely have different means, the pooled variable will look non-normal even when every group is perfectly normal inside itself.
Testing the outcome variable on its own will therefore return a significant Shapiro-Wilk that is telling you about the group difference you are trying to test, not about a violated assumption.
Save → Unstandardized residuals) and run Explore on thoseSend your variables and design. A named statistician confirms which assumptions your analysis actually requires, checks them properly, and returns annotated output.
Get a fixed quoteThe catch
Why the p-value misleads
The Shapiro-Wilk p-value confounds two things: how non-normal the data are, and how much data you have. That makes it unreliable at both ends of the range, in opposite directions.
| Sample size | What happens | Consequence |
|---|---|---|
| Under about 30 | Very low power | Real departures go undetected and the test falsely reassures you |
| 30–300 | Reasonable | Where the test is genuinely informative |
| Over about 300 | Very high power | Trivial departures reach significance for data that are fine in practice |
The irony is exact. In small samples, where normality matters most because the central limit theorem cannot help you, the test is least able to detect a problem. In large samples, where it matters least, the test is most likely to flag one.
Never let the normality test alone decide your analysis. Read it alongside the Q-Q plot, the W statistic and your sample size. A significant result on n = 2,000 with W = .996 is not a reason to abandon a t-test.
Remedies
What to do when it fails
In order of preference, and only once you have established the departure is real and your test genuinely requires the assumption.
| Option | When | Cost |
|---|---|---|
| Nothing | n is reasonably large and the test is robust | None — often the correct answer |
| Transform | Clear skew with a natural transformation | Results sit on a transformed scale |
| Non-parametric test | Ordinal data or severe skew | Slight power loss; different wording |
| Bootstrap | Small sample, any shape | SPSS offers this in most dialogs |
| If you were going to run | Switch to |
|---|---|
| Independent samples t-test | Mann-Whitney U |
| Paired samples t-test | Wilcoxon signed-rank |
| One-way ANOVA | Kruskal-Wallis |
| Pearson correlation | Spearman's rho |
After a log transform, a difference in means becomes a difference in geometric means, and back-transformed results are ratios rather than differences. That is often perfectly interpretable, but it has to be stated in the write-up.
Pitfalls
Five mistakes
1. Testing the pooled variable when comparing groups
Genuinely different group means make the combined distribution look non-normal. Use the Factor List.
2. Reading Kolmogorov-Smirnov instead of Shapiro-Wilk
SPSS prints K-S first, so it catches the eye. Shapiro-Wilk is the more powerful test.
3. Treating significance in a large sample as a problem
Check W and the Q-Q plot before changing anything.
4. Treating non-significance in a small sample as reassurance
Under n = 30 the test has very little power. It has not established normality.
5. Testing normality for tests that do not need it
Chi-square, Mann-Whitney and Kruskal-Wallis have no normality assumption at all.
Reporting
How to report it
| Situation | How to write it |
|---|---|
| Assumption met | Shapiro-Wilk indicated no significant departure from normality, W = .97, p = .164. |
| Large sample, trivial departure | W = .996, p = .019; given n = 1,240 and near-linear Q-Q plots, the parametric test was retained. |
| Genuine departure | W = .91, p = .002; scores were right-skewed, so a Mann-Whitney U test was used. |
Send the dataset and your draft analysis. A named statistician verifies the assumptions that actually apply to your design and returns annotated SPSS output with APA tables.
See SPSS data analysisAnswers
Frequently asked questions
How do I test for normality in SPSS?
Analyze > Descriptive Statistics > Explore. Move your outcome into the Dependent List, click Plots, tick 'Normality plots with tests', then Continue and OK. SPSS returns the Tests of Normality table with Shapiro-Wilk and Kolmogorov-Smirnov, plus Q-Q plots.
Should I use Shapiro-Wilk or Kolmogorov-Smirnov in SPSS?
Shapiro-Wilk. It is more powerful than Kolmogorov-Smirnov at essentially all realistic sample sizes. SPSS prints K-S first in the table, which is why people read it by mistake.
What does a significant Shapiro-Wilk test mean?
That the data depart from normality more than chance alone would produce. The logic is reversed from most tests — here a significant result is the unwelcome one. But in samples above a few hundred, trivial departures reach significance routinely, so check the W statistic and the Q-Q plot before acting on it.
What is a good W value in the Shapiro-Wilk test?
W runs from 0 to 1 and measures how closely the data track normality, independently of sample size. Values above about .95 indicate a close fit. Reporting W alongside the p-value lets a reader judge whether a significant result reflects a real problem or simply a large sample.
Do I test normality on the whole variable or within groups?
Within groups, whenever you are comparing groups. Put the grouping variable in the Factor List. If the groups genuinely differ, the pooled variable will look non-normal even when each group is perfectly normal, and testing it will mislead you.
What if my data are not normally distributed in SPSS?
First check whether your test actually requires normality and whether it is robust at your sample size — often nothing needs doing. Otherwise transform for skew, or switch to the rank-based equivalent: Mann-Whitney for an independent t-test, Wilcoxon for paired, Kruskal-Wallis for ANOVA.
Does a paired t-test need the raw scores to be normal?
No — it needs the difference scores to be normal. Compute the difference in SPSS with Transform > Compute Variable, then run Explore on that. Two heavily skewed sets of scores can produce perfectly well-behaved differences.
Keep reading