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.

Written and reviewed by Hafiz Ahmad Tariq, Senior Biostatistician
Updated 2 September 20267 min read
How do you test for normality in SPSS?

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

The click path AnalyzeDescriptive StatisticsExplore In the Explore dialog 1. Move your outcome variable into Dependent List 2. If comparing groups, move the grouping variable into Factor List 3. Click Plots → tick Normality plots with tests → Continue → OK Step 2 matters: normality is assessed WITHIN each group, not on the pooled variable.
Analyze → Descriptive Statistics → Explore, then tick 'Normality plots with tests' under Plots.
Analyze → Descriptive Statistics → Explore

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.

Move your outcome into Dependent List

This is the variable whose distribution you are checking — the score, the measurement, the outcome. Not your predictors.

If you are comparing groups, put the grouping variable in Factor List

SPSS then tests normality separately within each group, which is what the assumption actually requires.

Plots → tick 'Normality plots with tests' → Continue → OK

This single checkbox produces both the Tests of Normality table and the Q-Q plots. Without it you get descriptives only.

Explore, not Frequencies

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

Tests of Normality — what SPSS gives you Kolmogorov-SmirnovShapiro-Wilk StatisticdfSig. StatisticdfSig. .10462.092 .97262.164 Wellbeing score Read the Shapiro-Wilk Sig. column. Above .05 → no significant departure from normality. Ignore Kolmogorov-Smirnov unless your sample is very large — it is the weaker test here. Note the reversal: a SIGNIFICANT result is the unwelcome one.
The Tests of Normality table. Shapiro-Wilk is the column that matters for most sample sizes.

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.MeansReading
> .05Not significantNo significant departure from normality — the usual outcome you want
≤ .05SignificantThe data depart from normality more than chance would produce
Read the W statistic too, not only Sig.

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 plotMeansUsual response
Points on the lineApproximately normalProceed
Curves upward at the rightRight skewLog or square-root transform
Curves downwardLeft skewSquare, or reflect then transform
S-shapedHeavy tailsRobust or rank-based method
Points off at one end onlyOutliersInvestigate those cases individually
Expect wobble at the ends

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.

Put the grouping variable in Factor List so SPSS tests each group separately
For a paired t-test, compute the difference score first and test that — not the before and after variables
For regression, save the residuals (Save → Unstandardized residuals) and run Explore on those
Not sure the assumption applies to your design?

Send your variables and design. A named statistician confirms which assumptions your analysis actually requires, checks them properly, and returns annotated output.

Get a fixed quote

The 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 sizeWhat happensConsequence
Under about 30Very low powerReal departures go undetected and the test falsely reassures you
30–300ReasonableWhere the test is genuinely informative
Over about 300Very high powerTrivial 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.

The practical rule

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.

OptionWhenCost
Nothingn is reasonably large and the test is robustNone — often the correct answer
TransformClear skew with a natural transformationResults sit on a transformed scale
Non-parametric testOrdinal data or severe skewSlight power loss; different wording
BootstrapSmall sample, any shapeSPSS offers this in most dialogs
If you were going to runSwitch to
Independent samples t-testMann-Whitney U
Paired samples t-testWilcoxon signed-rank
One-way ANOVAKruskal-Wallis
Pearson correlationSpearman's rho
Transformations change what you are reporting

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

SituationHow to write it
Assumption metShapiro-Wilk indicated no significant departure from normality, W = .97, p = .164.
Large sample, trivial departureW = .996, p = .019; given n = 1,240 and near-linear Q-Q plots, the parametric test was retained.
Genuine departureW = .91, p = .002; scores were right-skewed, so a Mann-Whitney U test was used.
Report W as well as the p-value so the reader can judge the size of the departure
State what you tested — residuals, difference scores, or within groups
Mention the Q-Q plot and what it showed
Give the sample size in the same sentence, since it governs interpretation
Have your assumption checks reviewed before you submit

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 analysis

Answers

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.