The Central Limit Theorem
Why sample means go normal regardless of the parent distribution, with simulation evidence and sample-size rules.
Assumes you know
The Central Limit Theorem
Intuition first
Take any distribution you like — skewed, bimodal, discrete, ugly. Draw values from it, average them, and write down the result. Repeat many times. The histogram of those averages will be approximately normal, and the approximation improves as grows.
This is genuinely remarkable. The shape of the original distribution is irrelevant. Roll dice, measure exponential waiting times, flip biased coins — the distribution of the sample mean converges to the same bell curve in every case. Only two things about the parent distribution survive: its mean, which becomes the centre, and its variance, which sets the width.
This is why the normal distribution is everywhere, and why inference works at all. It lets you put a confidence interval around a sample mean without knowing anything about the population's shape.
The limits matter too. The theorem is about averages, not individual observations, and it requires finite variance — which is why it says nothing about heavy-tailed data.
Statement
Let be i.i.d. with finite mean and finite variance . Then
Equivalently, for large :
| Symbol | Meaning | Read aloud |
|---|---|---|
| X̄ | Sample mean, (X₁ + … + Xₙ)/n | X bar |
| μ, σ² | Mean and variance of the parent distribution | mu, sigma squared |
| σ/√n | Standard error — the SD of the sample mean | standard error |
| →ᵈ | Convergence in distribution | converges in distribution |
Why the standard error is σ/√nAdvanced
This is exact and does not require the CLT, only linearity and independence.
For the variance, apply the scaling rule with , then independence to drop the covariance terms:
The is the single most consequential number in statistics. To halve your uncertainty you need four times the data; to reduce it tenfold, a hundred times the data. This is why large-scale data collection has diminishing returns, and it is the same that appeared in the generalisation bounds.
Proof sketch via moment generating functionsAdvanced
Standardise each observation: let , so and . Define
which is exactly the standardised sample mean. Let be the common MGF of the . Because the are independent and scales each by :
Now Taylor-expand about zero. Using , and :
Substitute :
Raise to the th power:
using . And is precisely the MGF of the standard normal.
Two things the proof reveals. The first-order term vanished because we centred, and the second-order term survived because we scaled by — that specific power is what balances the expansion. And the argument needs to be finite, which is the finite-variance condition. Distributions with infinite variance have no such expansion, and the theorem fails.
How large must n be?
There is no universal answer; it depends on how far the parent distribution is from normal.
| Parent distribution | Adequate |
|---|---|
| Already normal | 1 — exact, not approximate |
| Symmetric, light tails (uniform) | 5–10 |
| Moderately skewed (exponential) | 30–50 |
| Heavily skewed (lognormal, Pareto with finite variance) | 100s to 1000s |
| Binary with near 0 or 1 | Need and |
| Infinite variance (Cauchy) | Never |
Solved problem 1 · A skewed parent, a normal mean
Customer service times have mean 4 minutes and standard deviation 6 minutes — strongly right-skewed, since for a positive quantity. A sample of 100 customers is taken.
(a) What is the distribution of the sample mean? (b) Find . (c) Find the probability the total time exceeds 450 minutes.
Step 1 — part (a): apply the CLT
, , . The standard error is
Step 2 — note the shape change
The parent has , strongly skewed. The sample mean has and is approximately symmetric. Averaging 100 observations shrank the relative spread by a factor of 10 and removed most of the skew.
Step 3 — part (b): standardise
Step 4 — part (c): totals, not means
For the sum :
Step 5 — check the two answers are consistent
is the same event as , not — so the two answers should differ, and they do. As a check on part (c) via the mean: means , giving , the same ✓.
Note the asymmetry in scaling: the standard deviation of the sum grows like () while the standard deviation of the mean shrinks like .
Answer
(a) with SE ; (b) ; (c) .
Where the CLT fails
Infinite variance. The Cauchy distribution has undefined mean and infinite variance. Its sample mean has the same Cauchy distribution as a single observation — averaging achieves nothing at all. More generally, for Pareto tails with index the variance is infinite and the limit is a stable distribution, not normal.
Dependence. Time series, spatially correlated data, and clustered observations violate independence. Variants of the CLT exist under weak dependence, but the effective sample size is smaller than , so naive standard errors are too small.
Not identically distributed. Mild violations are fine under the Lindeberg condition, but if one observation dominates the variance the limit is not normal.
import numpy as np
from scipy import stats
rng = np.random.default_rng(0)
REPS = 40_000
# Exponential parent: mean 4, sd 4. Watch skewness of the mean decay.
print(f"{'n':>5} {'mean':>7} {'SE obs':>8} {'SE theory':>9} {'skew':>7}")
for n in (1, 5, 10, 30, 100):
means = rng.exponential(4.0, size=(REPS, n)).mean(axis=1)
print(f"{n:5d} {means.mean():7.3f} {means.std():8.4f} "
f"{4/np.sqrt(n):9.4f} {stats.skew(means):7.3f}")
# The worked example.
print(f"\nP(X̄ > 5) {stats.norm.sf(5, loc=4, scale=0.6):.4f}")
print(f"P(S > 450) {stats.norm.sf(450, loc=400, scale=60):.4f}")
# Where it fails: Cauchy has no finite variance, so averaging does nothing.
print("\nCauchy — sample mean does not concentrate:")
for n in (10, 100, 1000, 10_000):
m = rng.standard_cauchy(size=(2000, n)).mean(axis=1)
print(f" n={n:<6} IQR of sample means {np.subtract(*np.percentile(m, [75, 25])):.3f}")Running the first block, skewness of the sample mean falls from about 2.0 at towards 0.2 at — the CLT happening numerically. The Cauchy block shows the interquartile range of the sample mean refusing to shrink, no matter how large becomes.
Exercise 1
A population has , . For , find .
Show solutionHide solution
About 67.3%.
Note that no assumption about the parent distribution's shape was needed — only its mean and standard deviation, plus being large enough for the CLT to bite. If the parent were heavily skewed, 36 might not suffice and this answer would be unreliable.
Exercise 2
Explain why the CLT does not justify modelling individual insurance claims as normal, even with a million historical claims.
Show solutionHide solution
The CLT concerns the distribution of the sample mean, not the distribution of individual observations. Collecting more claims makes the average claim size more precisely known and more normally distributed. It does nothing to the shape of the underlying claim distribution, which is a fixed property of the world.
Claim sizes are strongly right-skewed: most are small, a few are enormous. That remains true with a million observations — indeed more observations reveal the tail more clearly rather than softening it.
Two concrete consequences of getting this wrong:
Negative claims. A normal model assigns positive probability to negative claim amounts, which is impossible.
Catastrophic underestimation of tail risk. A normal fitted to the mean and variance of claims will put negligible probability beyond , while the real distribution produces such claims regularly. This is precisely how insurers and banks under-reserve.
There is also a deeper problem: many heavy-tailed claim distributions have such large or infinite variance that the CLT converges extremely slowly or not at all, so even the mean may not be reliably normal at a million observations.
The right approach is to model individual claims with a distribution that has the correct shape — lognormal, gamma, Pareto, or a spliced body-and-tail model — and reserve the CLT for statements about aggregate averages.
Next: Markov Chains, the last lesson in this module and the bridge to hidden Markov models and reinforcement learning.