Chapter 12 Problem Set – One-Way ANOVA

Where this problem set fits in the story

This Track C problem set is linked to Chapter 12: One-Way ANOVA in the Psychological Science & Statistics mini-book (Track B).

  • Track B Chapter 12 introduces the logic of one-way ANOVA: partitioning variance, interpreting the F-ratio, and understanding how post-hoc tests localize differences between means.

  • Track B Chapter 10 problem set showed how to work with two groups using independent-samples t-tests.

  • This Track C Chapter 12 problem set extends that workflow to three or more groups using one-way ANOVA.

The PyStatsV1 scripts here turn the conceptual ideas from Chapter 12 into a reusable analysis template that you can adapt for your own studies.

Learning goals

By working through this problem set and inspecting the solution scripts, you should be able to:

  • Recognize when a one-way ANOVA is appropriate (one categorical predictor, three or more groups, continuous outcome).

  • Simulate and analyze between-subjects designs with multiple levels of an independent variable (e.g., low, medium, high intervention).

  • Interpret the ANOVA table: sums of squares, degrees of freedom, mean squares, F-statistic, and p-value.

  • Inspect group means and effect sizes to distinguish statistical significance from practical significance.

  • Use PyStatsV1’s solution scripts as a template for running your own one-way ANOVAs.

How to run the worked solutions

From the project root (with your virtual environment activated), the Chapter 12 problem-set lab can be re-run with:

make psych-ch12-problems

Behind the scenes this target calls:

python -m scripts.psych_ch12_problem_set

This will:

  • Simulate three different one-way ANOVA scenarios.

  • Run ANOVA for each scenario.

  • Save the simulated datasets and a summary CSV of the results.

  • Produce a simple group-means plot for quick visual comparison.

Conceptual warm-up

Before looking at the code, think through these questions:

  • Why do we prefer ANOVA instead of running multiple t-tests when comparing three or more groups?

  • What does it mean, conceptually, to “partition” total variability into between-groups and within-groups components?

  • How does increasing the number of groups (but holding sample size fixed) affect the F-ratio and statistical power?

  • How would you explain to a collaborator the difference between a statistically significant F and a large, practically meaningful effect?

Applied exercises

The script scripts.psych_ch12_problem_set contains three exercises that mirror common classroom and research scenarios.

Exercise 1 – Classic three-group ANOVA (moderate effect)

  • Design: Three independent groups (control, low_dose, high_dose), equal sample sizes.

  • Outcome: Continuous score (e.g., stress reduction, performance, symptom change).

  • Effect: Moderate treatment effect – the means are separated enough that the omnibus F-test is usually significant.

Questions to consider:

  • What does the ANOVA table tell you about the overall effect of Group?

  • How large is the effect (e.g., partial eta-squared)?

  • Which pairwise differences would you expect to be significant in a post-hoc analysis?

Exercise 2 – Small effect, borderline significance

  • Design: Same three groups as Exercise 1, but with smaller differences between group means.

  • Effect: Small effect size – the F-test may be non-significant or only weakly significant depending on the simulated sample.

Questions to consider:

  • How do F and p change compared to Exercise 1?

  • Does the conclusion change if you focus on effect size rather than p < .05?

  • How would you report these results honestly in an APA-style write-up?

Exercise 3 – Unequal n and strong effect

  • Design: Three groups with unequal sample sizes (e.g., more participants in the control group than in one of the treatment groups).

  • Effect: Strong effect size – the F-test is clearly significant, and the pattern of means is obvious in the plot.

Questions to consider:

  • Does unequal n change your interpretation of the ANOVA table?

  • How might unequal n arise in a real study (dropout, recruitment issues)?

  • What would you recommend to a collaborator planning a follow-up study?

PyStatsV1 Lab: One-way ANOVA solution scripts

The solution code for these exercises lives in:

scripts/psych_ch12_problem_set.py

Key pieces to inspect in that module:

  • Data generation helpers that simulate one-way ANOVA designs with tunable effect sizes and sample sizes.

  • A `run_one_way_anova` function that wraps pingouin.anova to produce a tidy ANOVA table suitable for teaching.

  • A small `ProblemResult` dataclass that bundles the simulated data, ANOVA table, and metadata (exercise label, group means, effect size, etc.).

  • A main routine that writes all datasets and a summary CSV so you can see the three scenarios side-by-side.

Running the Chapter 12 problem set lab

To re-run all exercises and regenerate the outputs for this problem set, use:

make psych-ch12-problems

Then inspect:

  • data/synthetic/psych_ch12_exercise1.csv – Three-group design with a moderate treatment effect.

  • data/synthetic/psych_ch12_exercise2.csv – Three-group design with a small effect.

  • data/synthetic/psych_ch12_exercise3.csv – Three-group design with unequal n and a strong effect.

  • outputs/track_c/ch12_problem_set_results.csv – Summary ANOVA table (one row per exercise).

  • outputs/track_c/ch12_problem_set_group_means.png – Group means plot for the three exercises.

Conceptual summary

  • One-way ANOVA compares mean differences across three or more independent groups using a single F-test.

  • The F-ratio expresses the signal-to-noise logic of variance partitioning: how much variability is explained by group membership relative to residual variability within groups.

  • Sample size, group spacing (effect size), and error variance jointly determine whether an effect is likely to be detected as statistically significant.

  • PyStatsV1 solution scripts give you a reusable one-way ANOVA template: swap in your own dataset, re-run the analysis, and verify the results using the tests.