TL;DR
Parametric tests (t-test, ANOVA, linear regression) assume roughly normal, equal-variance data (technically: normal residuals). Check with plots first (histogram, Q–Q plot), not just a normality test. If assumptions fail, you have options: transform the data, use a robust/Welch variant, switch to a non-parametric test, or use a model designed for your data type.
What actually needs to be normal
A common misconception: the raw data must be normal. What the tests really assume is that the residuals (the leftover variation after accounting for group/predictor) are approximately normal. For ANOVA/regression, that the spread of residuals is roughly constant. For a simple two-group comparison this is close to "each group is roughly normal," but for regression you check the residuals, not the raw y values.
Three assumptions to check for most parametric tests:
- Normality of residuals.
- Homogeneity of variance (homoscedasticity).
- Independence of observations: the one a statistical test can't rescue if violated.
How to check: plots beat tests
Check assumptions with plots first. A Q–Q plot tells you far more than a Shapiro–Wilk p-value, which misses real non-normality at small n and flags trivial deviations at large n.
- Histogram / density plot: is it roughly symmetric and bell-ish, or heavily skewed?
- Q–Q plot: points on the diagonal line = approximately normal; systematic curves = skew; S-shapes = heavy tails. This is the most informative single check.
- Residual-vs-fitted plot (regression/ANOVA): a shapeless cloud is good; a funnel shape means non-constant variance; a curve means non-linearity.
Switch between distribution shapes to learn to read a Q–Q plot, then log-transform the skewed one to watch it snap back to the diagonal:
Normal data hugs the diagonal. That's what “normal enough” looks like.
Formal normality tests (Shapiro–Wilk, Kolmogorov–Smirnov) exist, but use them with caution:
- With small samples they have little power and miss real non-normality.
- With large samples they flag trivial, harmless deviations as "significant."
So don't let a Shapiro–Wilk p-value mechanically decide your analysis. With large n, parametric tests are robust to moderate non-normality anyway (thanks to the central limit theorem); with small n, lean on the Q–Q plot and prior knowledge of the data type.
If assumptions fail, your options
- Transform the data. A log transform is the workhorse for right-skewed biological data (concentrations, fold-changes, expression) and often fixes both skew and unequal variance at once. Square-root helps count-like data; logit/arcsine has been used for proportions (though modeling proportions directly is better).
- Use a variance-robust test. Welch's t-test and Welch's ANOVA handle unequal variances without a transform.
- Switch to non-parametric. Mann–Whitney, Kruskal–Wallis, etc., when transformation doesn't help and n is small.
- Use the right model for the data type. Counts → Poisson/negative-binomial; proportions → logistic regression; time-to-event → survival models. Often better than transforming continuous-test machinery onto data that isn't continuous.
A biology example
Cytokine concentrations are right-skewed with a few large values, and the high-mean group also has a larger spread. A log transform usually pulls the distribution toward symmetry and equalizes the variances, after which a t-test on the log values is valid (and tests the ratio of geometric means, often the biologically natural quantity for concentrations).
Common mistakes
- Letting Shapiro–Wilk auto-decide. Especially misleading at both small and large n; use plots and judgment.
- Testing normality of the raw outcome instead of residuals in regression/ANOVA.
- Reflexively going non-parametric when a simple log transform would keep the more powerful, more interpretable parametric test.
- Treating outliers as automatic deletions. Investigate them. Is it a data-entry error, a real biological extreme, or a failed assay? Document any exclusion rule decided in advance.
- Forgetting that no test fixes non-independence.
Related
t-tests · Non-parametric tests · Replicates and pseudoreplication