← Course home
MODULE 3 · FIRST-YEAR LEVEL

Distributions and descriptive statistics

Does a mean tell the whole story of a distribution?

70–90 minutesConcepts first, R optionalSynthetic data

Learning outcomes

Conceptual lesson

Mean, median and mode describe centre in different ways. For a highly right-skewed income distribution the median may describe a typical observation better than the mean. Range, interquartile range, variance and standard deviation describe spread.

A histogram displays the distribution of a numerical variable; a boxplot compares distributions; a bar chart shows categorical counts or proportions; and a scatterplot examines co-variation between two numerical variables. Axes, scales and sample sizes affect interpretation.

When observations are missing, disclose the valid sample size. Using `na.rm=TRUE` allows calculations but does not remove the causes or consequences of missingness. Interpret centre, spread and shape together.

Worked research example

Compute the mean, median and standard deviation of the fictional `score_post` data. A group may have a higher mean but also much greater variability. Reporting means alone can hide this difference.

Common reasoning trap

Two groups can have identical means yet very different distributions, outliers or sample sizes.

Practice tasks

  1. 1. Calculate mean, median, SD and IQR for `score_post`.
  2. 2. Draw a histogram and a three-group boxplot; explain which question each answers.
  3. 3. In one result sentence distinguish total sample size from valid sample size.

Explain your reasoning, not just the numerical result.

Optional R practice

Download the fictional CSV into your working folder, then run the script below or download the .R file. No additional packages are needed.

Download CSV · Download R lab · Module 0 refresher

# Statistics Lab / ferdo — synthetic data (no real student records)
# Save stats_synthetic.csv in your working directory.
d <- read.csv("stats_synthetic.csv", stringsAsFactors = TRUE)
stopifnot(nrow(d) == 36, all(c("score_pre","score_post","group") %in% names(d)))
# Groups are observational labels: differences cannot establish a treatment effect.

d <- read.csv("stats_synthetic.csv")
mean(d$score_post)
median(d$score_post)
sd(d$score_post)
IQR(d$score_post)
hist(d$score_post, main="Quiz score distribution", xlab="Post quiz score")
boxplot(score_post ~ group, data=d, ylab="Score")

Stretch: mathematical track

Explore the intuitive reason why sample variance divides by n−1 rather than n.

Exit ticket

Write one evidence-bounded claim and one limitation about this week's example.

This week's student workbook

Four original written problems (20 marks) and a formative four-question self-check.

Open week 3 workbook →