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.
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.
| Test | When |
|---|---|
| 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. |
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.
| Parametric | Alternative | In R |
|---|---|---|
| Independent-samples t | Mann-Whitney U | wilcox.test(x, y) |
| Paired t | Wilcoxon signed-rank | wilcox.test(x, y, paired=TRUE) |
| ANOVA | Kruskal-Wallis | kruskal.test(y ~ group, data) |
| Pearson correlation | Spearman | cor.test(x, y, method='spearman') |
| Linear regression | Robust regression or bootstrap | boot::boot(data, fn, R=5000) |
| Transformation | When | In R |
|---|---|---|
| Logarithmic | Positive skew, variance growing with the mean | log(x) |
| Square root | Counts, moderate positive skew | sqrt(x) |
| Inverse | Severe positive skew | 1/x |
| Box-Cox | Automatic search for the optimal lambda | MASS::boxcox(model) |