Shapiro-Wilk Test Interpretation: Is Your Data Normal?

Enter your W and p from SPSS, R or jamovi and find out whether you can assume normality: what W means, why your n changes the verdict and what test to run next.

What the normality interpreter does

Give it the statistic of your normality test (Shapiro-Wilk or Kolmogorov-Smirnov), its p value and the sample size, and it tells you what to do: stay parametric, transform the data, or move to the non-parametric alternative. The decision does not come from the p value alone, because the p value of a normality test depends on sample size.

Which test to use

TestWhen
Shapiro-Wilk (W)Recommended for n < 50. The most powerful at detecting departures from normality.
Kolmogorov-Smirnov (D)For large samples. Generally less powerful than Shapiro-Wilk.

Why sample size changes everything

Above n = 200 normality tests are very sensitive: departures that are trivial and practically irrelevant produce significant p values. A p ≤ .05 with a large n is not on its own a reason to transform your data. Look at the actual magnitude of skewness and kurtosis and at the Q-Q plot: if the departure is not extreme (skewness below |2| and kurtosis below |7|), parametric tests hold up.

Non-parametric alternatives

ParametricAlternativeIn R
Independent-samples tMann-Whitney Uwilcox.test(x, y)
Paired tWilcoxon signed-rankwilcox.test(x, y, paired=TRUE)
ANOVAKruskal-Walliskruskal.test(y ~ group, data)
Pearson correlationSpearmancor.test(x, y, method='spearman')
Linear regressionRobust regression or bootstrapboot::boot(data, fn, R=5000)

Transformations

TransformationWhenIn R
LogarithmicPositive skew, variance growing with the meanlog(x)
Square rootCounts, moderate positive skewsqrt(x)
InverseSevere positive skew1/x
Box-CoxAutomatic search for the optimal lambdaMASS::boxcox(model)

You may also be interested in

Home · Contact for a quote