The Normal Distribution
The Gaussian density, standardisation, z-tables, and the 68–95–99.7 rule with worked lookups.
Assumes you know
The Normal Distribution
Intuition first
The normal distribution is the bell curve, and it is everywhere for a specific reason rather than by convention: whenever a quantity is the sum of many small independent contributions, its distribution tends towards normal regardless of what the individual contributions look like. That is the Central Limit Theorem, and it is why measurement errors, heights, and sample means all end up approximately normal.
Two parameters fix it entirely. The mean says where the peak sits; the standard deviation says how wide it is. Nothing else — no skew, no separate tail parameter. That is unusually restrictive for a distribution used so widely, and it is the source of most misuse: real data with heavy tails or asymmetry is routinely modelled as normal because the mathematics is convenient.
The practical skill is standardisation: converting any normal question into a question about the single standard normal , which is what tables and software know about.
Definition
| Symbol | Meaning | Read aloud |
|---|---|---|
| μ | Mean, median and mode — all coincide | mu |
| σ | Standard deviation, the distance to the inflection point | sigma |
| σ² | Variance — note N(μ, σ²) is parametrised by variance | sigma squared |
| Z | Standard normal, N(0, 1) | Z |
| Φ(z) | Standard normal CDF, P(Z ≤ z) | Phi of z |
| z_α | The value with α probability above it | z alpha |
Key structural facts:
- Symmetric about , so mean = median = mode.
- Inflection points at , which is how you read off a plotted curve.
- Support is all of — a normal model always assigns non-zero probability to negative values, which is why it is wrong for strictly positive quantities like income or duration.
Standardisation
Why standardisation preserves normalityAdvanced
Let . Compute its CDF directly:
Differentiate with respect to , applying the chain rule:
which is exactly the standard normal density. The from the Jacobian cancels the in the denominator, and the argument of the exponential simplifies to .
This works because the normal family is a location–scale family: shifting and scaling a normal gives another normal. Most distributions are not closed under both operations, which is why this trick is specific rather than general.
The empirical rule
Solved problem 1 · Standardising and reading the table
Adult male heights are approximately cm. Find the probability that a randomly chosen man is (a) shorter than 185 cm, (b) between 165 and 185 cm, (c) taller than 190 cm. (d) What height is exceeded by only 5% of men?
Step 1 — part (a): standardise
Step 2 — part (b): two bounds
By symmetry :
Step 3 — part (c): upper tail
Step 4 — part (d): invert the problem
We need with , so . The standard normal value with 95% below it is .
Un-standardise by rearranging :
Step 5 — sanity checks
Part (b) covers and gives 78.9%, sensibly between the 68.3% for and 95.5% for ✓.
Part (d): 188.16 cm is above the mean, and the answer must exceed the mean since we want an upper 5% cutoff ✓.
Answer
(a) ; (b) ; (c) ; (d) cm.
Linear combinations stay normal
For independent and :
Proof via moment generating functionsAdvanced
The normal MGF is
For independent variables, MGFs of sums multiply. Also , since . So
Combine the exponents:
This is precisely the normal MGF with mean and variance . Since an MGF determines a distribution uniquely, the combination is normal.
Note the variances add with squared coefficients even for a difference: has variance , not the difference. This closure property is special — sums of independent uniforms are not uniform, sums of exponentials are not exponential.
Standard normal reference values
| Confidence | Two-sided | One-sided |
|---|---|---|
| 90% | 1.645 | 1.282 |
| 95% | 1.960 | 1.645 |
| 99% | 2.576 | 2.326 |
for a two-sided 95% interval is worth memorising; it appears in every confidence interval and hypothesis test in the statistics module.
import numpy as np
from scipy import stats
X = stats.norm(loc=175, scale=8)
print(f"(a) P(X < 185) {X.cdf(185):.4f}")
print(f"(b) P(165 < X < 185) {X.cdf(185) - X.cdf(165):.4f}")
print(f"(c) P(X > 190) {X.sf(190):.4f}")
print(f"(d) 95th percentile {X.ppf(0.95):.2f} cm")
# The empirical rule, computed rather than quoted.
Z = stats.norm()
for k in (1, 2, 3):
print(f"within {k}σ: {Z.cdf(k) - Z.cdf(-k):.4%}")
# Linear combinations stay normal — verify empirically.
rng = np.random.default_rng(0)
A = rng.normal(10, 3, 500_000)
B = rng.normal(4, 2, 500_000)
D = 2 * A - B
print(f"\n2A - B: mean {D.mean():.3f} (theory {2*10 - 4}) "
f"var {D.var():.3f} (theory {4*9 + 4})")
# Critical values used throughout the statistics module.
for conf in (0.90, 0.95, 0.99):
print(f"{conf:.0%} two-sided z = {Z.ppf(1 - (1-conf)/2):.4f}")Exercise 1
Test scores are . The top 10% receive a distinction. What is the cutoff?
Show solutionHide solution
We need with , equivalently .
The standard normal 90th percentile is .
So roughly 87.4 marks. Sanity check: the cutoff is above the mean, as it must be for a top 10% threshold, and is between (top 15.9%) and (top 5%) ✓.
Exercise 2
Two independent machines fill bottles: machine A with ml, machine B with ml. A crate holds one bottle from each. Find the distribution of the total, and the probability the total is below 995 ml.
Show solutionHide solution
The variances are given as and , so and .
Sum of independent normals is normal, with means and variances adding:
Now standardise:
About 20.3%.
A common error here is adding the standard deviations, , instead of the variances. That would give and — an error of 7 percentage points. Variances add; standard deviations do not.
Next: t, Chi-Squared and F Distributions, the three distributions derived from the normal that make statistical inference possible.