One-Way ANOVA in SPSS Step by Step (Tutorial with Worked Example)

The one-way ANOVA is probably the analysis you will run most often throughout your psychology career. Whenever you need to compare the means of three or more independent groups, this is your test. In this tutorial I walk you through the entire process in SPSS: from checking assumptions to interpreting every output table, running post-hoc comparisons, and writing up the results in APA 7 format.

I am not going to assume you are an SPSS expert. If you can open a data file and find the Analyze menu, that is all you need.

When to use a one-way ANOVA

You use a one-way ANOVA when you have a between-subjects design with one categorical independent variable (the factor) that has three or more levels, and a continuous dependent variable (interval or ratio scale). It is the natural extension of the independent-samples t-test: the t-test compares two groups, the ANOVA lets you compare three, four, or however many you need in one shot.

If you only have two groups, you can use a t-test (which is mathematically equivalent to a one-way ANOVA with two levels; you will get the same p-value). If your independent variable is within-subjects (the same participants go through every condition), you need a repeated-measures ANOVA or a mixed model.

Worked example

Throughout this tutorial we will work with a clinical psychology example. Imagine you have 90 participants randomly assigned to three treatment conditions, and you measure their well-being scores on a 0-100 scale:

  • Group 1 (CBT): Cognitive-Behavioural Therapy (n = 30)
  • Group 2 (Mindfulness): Mindfulness-Based Intervention (n = 30)
  • Group 3 (Control): Wait-list, no treatment (n = 30)

The research question: Are there significant differences in well-being scores depending on the type of treatment received?

In SPSS your data file will have two columns: a numeric variable Treatment coded as 1 = CBT, 2 = Mindfulness, 3 = Control (with the appropriate value labels), and a variable Wellbeing with the continuous score.

Assumptions of the one-way ANOVA

Before you touch the Analyze menu, check the assumptions. Skipping this step is one of the most common mistakes in doctoral dissertations, and reviewers love to flag it.

1. Independence of observations

Each score must be independent of every other score. This is guaranteed by your design: random assignment, each participant in one group only, no clustered data. If your data have a hierarchical structure (for example, patients nested within therapists), you need a multilevel model, not a standard ANOVA.

2. Normality of the dependent variable within each group

The model residuals should be approximately normally distributed within each group. With samples of 30 or more per group, the ANOVA is quite robust to moderate violations thanks to the central limit theorem. Assess normality with histograms, Q-Q plots, and the Shapiro-Wilk test. In SPSS you can get all of this from Analyze > Descriptive Statistics > Explore: put your dependent variable in, add the factor to the "Factor List", and under the Plots button check "Normality plots with tests". If the violation is severe and samples are small, consider the alternatives described later.

3. Homogeneity of variances (Levene's test)

The variances of the dependent variable should be roughly equal across all groups. Levene's test is the standard check. If it is significant (p < .05), the variances are unequal and you should use a Welch ANOVA instead of the classic ANOVA. Do not worry, SPSS gives you the Welch result right alongside the standard output.

Setting up the one-way ANOVA in SPSS

Go to Analyze > Compare Means > One-Way ANOVA. The main dialog opens.

Main dialog

  1. Move your dependent variable (Wellbeing) into the Dependent List box.
  2. Move your grouping variable (Treatment) into the Factor box.

Do not click OK yet. There are two buttons you need to configure first.

Post Hoc button

Click Post Hoc. Here you choose the multiple comparison procedures that will run if the omnibus ANOVA is significant. The three you will use most often:

  • Tukey HSD: The default choice in most journal articles. It controls the familywise error rate and compares every pair of groups. If you are not sure which one to pick, this is your safe bet when variances are equal.
  • Bonferroni: More conservative than Tukey. Best when you are only interested in a few planned comparisons, not all possible pairs.
  • Games-Howell: Does not assume equal variances. Use it when Levene's test is significant. It is the natural companion to the Welch ANOVA.

Practical tip: check both Tukey and Games-Howell at the same time. That way you have results for both scenarios (equal and unequal variances) and you decide which to report after seeing the Levene result. Click Continue.

Options button

Click Options and check these boxes:

  • Descriptive: Means, standard deviations, standard errors, 95% confidence intervals, and minimum/maximum values for each group. Essential for your APA write-up and for understanding what is actually happening in your data.
  • Homogeneity of variance test: Activates Levene's test. SPSS runs it before the ANOVA table and tells you whether you can trust the classic F or need to fall back on the Welch.
  • Brown-Forsythe and Welch: This is the key one. Checking this box gives you an extra table called "Robust Tests of Equality of Means" with the Welch statistic and the Brown-Forsythe statistic. If your variances are unequal, the Welch value is what you should report instead of the classic F.
  • Means plot: A simple plot of group means. It is not the prettiest graph in the world, but it works for a quick visual check.

Click Continue and then OK. SPSS will process the analysis and display the output in the Viewer.

Interpreting the ANOVA output in SPSS

SPSS will generate several tables. Let us go through each one, because they each tell you something different. If you are reading with your own output open and something does not add up, hand it to the free interpreter and it walks you through it table by table.

Descriptives table

This table shows, for each group, the mean, standard deviation, standard error, 95% confidence interval, and the minimum and maximum values. Before you look at any p-value, check this table first: are the CBT and Mindfulness means higher than the Control mean? By how much? This gives you the context you need to interpret everything else.

In our example you would expect to see something like: CBT with M = 72.30 (SD = 10.45), Mindfulness with M = 69.87 (SD = 11.22), and Control with M = 58.40 (SD = 12.10). That already tells you visually that the Control group is scoring lower.

Levene's test table (test of homogeneity of variances)

SPSS gives you the Levene statistic, its degrees of freedom, and the p-value. The logic is straightforward:

  • p > .05: The variances are similar enough. You can trust the classic F from the ANOVA table.
  • p < .05: The variances are significantly different. Use the Welch statistic (from the Robust Tests table) instead of the classic F, and Games-Howell for the post-hoc comparisons.

In recent versions of SPSS (v26+), this table includes four variants of the Levene test (based on the mean, the median, the adjusted-df median, and the trimmed mean). The one most commonly reported is the mean-based version.

ANOVA table

This is the main table. It has five key columns:

  • Sum of Squares (SS): Two rows: "Between Groups" (the variability due to treatment differences) and "Within Groups" (the variability within each group, i.e., error). The third row, "Total", is the sum of both.
  • df (degrees of freedom): Between Groups = number of groups minus 1 (in our case, 3 - 1 = 2). Within Groups = total N minus the number of groups (90 - 3 = 87).
  • Mean Square (MS): The sum of squares divided by the degrees of freedom. It is the estimated variance for each source.
  • F: The ratio MS Between / MS Within. A large F means there is more variability between the groups than within them, which suggests the treatments are producing real differences.
  • Sig. (p-value): The probability of getting an F this large or larger if there were no real differences between the groups. If p < .05, you reject the null hypothesis.

In our example: F(2, 87) = 8.45, p < .001. There are statistically significant differences between at least two of the three groups. But note: this does not tell you which groups differ. For that you need the post-hoc tests.

Robust Tests table (Welch and Brown-Forsythe)

If you checked the option under "Options", SPSS shows a table with the Welch statistic and the Brown-Forsythe statistic. Both are versions of the ANOVA that do not assume equal variances. Pay attention to two things:

  • The Statistic column: it is similar to F, but computed in a way that is robust to unequal variances.
  • The degrees of freedom: they are not whole numbers like in the classic ANOVA, because the Welch procedure adjusts the df based on how unequal the variances are.
  • The Sig.: if it is < .05, there are significant differences even after accounting for unequal variances.

Rule of thumb: if Levene's test was significant, report the Welch. If Levene was not significant, report the classic F. That said, many researchers today recommend reporting the Welch by default, because it performs well even when variances are equal.

Post-hoc tables (Multiple Comparisons)

This is where you find out which groups differ from which. SPSS generates a table with every pairwise combination. For each pair you get:

  • Mean Difference (I-J): The difference between the mean of group I and the mean of group J. If positive, group I has a higher mean.
  • Std. Error: The precision of that estimated difference.
  • Sig.: The p-value, already adjusted for multiple comparisons (you do not need to apply any additional correction).
  • 95% Confidence Interval: If it does not contain zero, the difference is significant.

In our example using Tukey, we would see that CBT vs. Control (p < .001) and Mindfulness vs. Control (p = .002) are significant, but CBT vs. Mindfulness (p = .680) is not. The takeaway: both treatments work better than no treatment, but there is no detectable difference between them.

If you used Games-Howell (because Levene was significant), the interpretation is identical; only the underlying calculation method changes.

Effect size: partial eta squared

The p-value tells you whether an effect exists, but not how large it is. You need the effect size, and the most common one for ANOVA is partial eta squared.

SPSS does not report it directly in the One-Way ANOVA table (it does in the General Linear Model Univariate procedure, but that is a different path). Calculating it by hand is easy:

Formula:

Partial eta squared = SS Between / (SS Between + SS Within)

Take the values straight from the ANOVA table. In our example, if SS Between = 3240.60 and SS Within = 16659.40, then partial eta squared = 3240.60 / (3240.60 + 16659.40) = .16.

Cohen's benchmarks for partial eta squared:

  • Small: approx. .01 (the factor explains 1% of the variance)
  • Medium: approx. .06 (the factor explains 6%)
  • Large: approx. .14 or more (the factor explains 14%+)

With partial eta squared = .16, we are looking at a large effect: the type of treatment explains 16% of the variability in well-being scores. That is substantial in clinical psychology.

Quick alternative: if you want SPSS to calculate partial eta squared automatically, use the path Analyze > General Linear Model > Univariate instead of One-Way ANOVA. Enter the dependent variable, put the factor in "Fixed Factors", and under the Options button check "Estimates of effect size". It gives you partial eta squared directly in the output table.

Reporting in APA 7 format

The APA 7 write-up for a one-way ANOVA must include the F statistic with both degrees of freedom, the exact p-value (or < .001 if it is very small), and the effect size. See the complete APA 7 reporting guide for more details.

Omnibus result

A one-way ANOVA was conducted to examine the effect of treatment type on well-being scores. Results indicated a significant effect, F(2, 87) = 8.45, p < .001, partial eta squared = .16, representing a large effect size according to Cohen's (1988) benchmarks.

If you report the Welch

Because Levene's test indicated unequal variances, F(2, 87) = 3.82, p = .026, a Welch ANOVA was used. Results indicated significant differences among the groups, Welch F(2, 57.34) = 7.91, p < .001.

Post-hoc comparisons

Tukey-corrected post-hoc comparisons indicated that the CBT group (M = 72.30, SD = 10.45) and the Mindfulness group (M = 69.87, SD = 11.22) scored significantly higher than the Control group (M = 58.40, SD = 12.10), p < .001 and p = .002, respectively. No significant differences were found between the CBT and Mindfulness groups, p = .680.

When assumptions fail: alternatives in SPSS

Your data will not always meet every assumption. Here are the most common alternatives and how to run them directly in SPSS.

Welch ANOVA (unequal variances)

If Levene's test is significant, the Welch ANOVA is your best option. It does not assume homogeneity of variances, and many statisticians recommend it as the default.

In SPSS you already have it if you followed the instructions above: in the One-Way ANOVA dialog, Options button, check Brown-Forsythe and Welch. The result appears in the "Robust Tests of Equality of Means" table. Report the Welch statistic with its degrees of freedom (which will be decimals, not whole numbers) and the p-value.

For post-hoc comparisons, use Games-Howell instead of Tukey, since Games-Howell does not assume equal variances either. Select it from the Post Hoc button in the same dialog.

Kruskal-Wallis (non-parametric alternative)

If your dependent variable is not truly continuous, the distribution is highly skewed, or you have small samples with severe normality violations, the Kruskal-Wallis test is the non-parametric alternative to the one-way ANOVA. It compares ranks rather than means.

In SPSS there are two paths (depending on your version):

Legacy path: Analyze > Nonparametric Tests > Legacy Dialogs > K Independent Samples. Move your dependent variable into the Test Variable List, your factor into the Grouping Variable, define the groups (1 to 3 in our case), and check Kruskal-Wallis H.

New path (SPSS 18+): Analyze > Nonparametric Tests > Independent Samples. SPSS opens a wizard where you select your test variable and factor. The output includes the Kruskal-Wallis H statistic, degrees of freedom, and p-value.

If the Kruskal-Wallis is significant and you need to know which groups differ, you have two options for post-hoc tests:

  • New path: SPSS automatically performs pairwise comparisons with Bonferroni correction. They appear directly in the output.
  • Manually: You can run Mann-Whitney tests between each pair of groups (Analyze > Nonparametric Tests > 2 Independent Samples) and apply the Bonferroni correction by dividing your alpha (.05) by the number of comparisons (3 pairs = adjusted alpha of .017).

Report the Kruskal-Wallis like this: H(2) = 14.32, p < .001. Note that you used the non-parametric alternative because the classic ANOVA assumptions were not met.

Common mistakes when running an ANOVA in SPSS

After reviewing hundreds of analyses in dissertations and journal manuscripts, these are the errors I see again and again:

  1. Not checking assumptions before interpreting. An ANOVA with highly unequal variances and unequal group sizes can produce inflated Type I error rates. Always check Levene's test and normality before reporting the classic F.
  2. Confusing statistical significance with practical significance. A small p-value does not mean the effect is clinically meaningful. Always report the effect size (partial eta squared) and discuss its magnitude.
  3. Running multiple t-tests instead of an ANOVA. If you have three groups and run three t-tests (A vs. B, A vs. C, B vs. C), you inflate the Type I error rate. The ANOVA followed by corrected post-hoc comparisons controls this risk.
  4. Interpreting a non-significant ANOVA as evidence of no effect. A non-significant result may be due to insufficient statistical power (a sample that is too small), not to a genuine absence of effect. Consider computing post-hoc power.
  5. Forgetting the post-hoc comparisons. A significant ANOVA only tells you that differences exist somewhere. Without post-hoc tests, you do not know between which groups.
  6. Using Tukey when variances are unequal. If Levene's test is significant, switch to Games-Howell. SPSS lets you request both at once, so there is no excuse.
  7. Omitting group descriptives. Means and standard deviations for each group are essential for the reader to understand the direction and magnitude of the differences. Without descriptives, p-values are numbers without context.
  8. Not calculating the effect size. The One-Way ANOVA in SPSS does not show it by default. Calculate it by hand using the formula above, or use the GLM Univariate path if you want SPSS to do it for you.

Personalised statistical consulting

If you need help with the ANOVA in your dissertation or journal article (checking assumptions, deciding between the classic and Welch ANOVA, interpreting the post-hoc comparisons, or writing the results section in APA 7), I can help. In my statistical consulting service I work with you so that you understand every step of the analysis and can defend it confidently before an examination committee or a peer reviewer.

Keep reading

All blog articles