Many common tests assume roughly normal data (or normal residuals). Here’s how to check that assumption in R without over-relying on any single number. This is exactly the judgement call behind question 5 of our which-test tool.
The big caveat: sample size
The Shapiro–Wilk test is sensitive to sample size. In small samples it can miss real non-normality; in very large samples it flags trivial, harmless departures as “significant.” So:
- Large n: a significant Shapiro–Wilk often doesn’t matter — the test you’re running is robust, and the Q–Q plot looks fine. Don’t panic over the p-value.
- Small n: the test has little power, so lean on the Q–Q plot and subject-matter knowledge.
If it’s not normal
You have good options: a nonparametric test (Mann–Whitney, Kruskal–Wallis), a transformation (log, square-root), or a method that doesn’t need normality of the raw data. For regression, remember it’s the residuals that should be normal, not the predictors.
Assumption checks are where analyses quietly go wrong. We make them explicit.