Objective. Students identify when to use normal, binomial, and Poisson distributions and calculate probabilities and quantiles using tables and Python's scipy.stats.
This lesson, its worked examples and its practice questions has not yet been verified by an industry-certified professional or by a certification or approval body. It is a study draft and may contain errors. Do not use it as instructions for work on a job site or on live equipment. Always follow your instructor, your supervising professional, and current official references and regulations.
VoTechWorks program approval and accreditation are still in progress. Credentials are issued only by the certifying bodies named in each program, after their own exams.
When you analyze real-world data—server logs, quality-control records, delivery times—you rarely know the exact outcome of any single event. Probability distributions give you a mathematical model of how likely each possible outcome is. Choosing the right distribution lets you make predictions, set thresholds, and communicate uncertainty with confidence. Three distributions appear constantly in analytics work: the normal, the binomial, and the Poisson.
---
The normal distribution (also called the Gaussian distribution) describes continuous measurements that cluster symmetrically around a mean. Examples include heights, measurement errors, and delivery times when no hard floor exists.
Two parameters fully define it:
The 68-95-99.7 rule (empirical rule) summarizes how data fall around the mean:
To find probabilities, you convert a raw value x to a z-score: `z = (x − μ) / σ`. You then look up the cumulative probability in a z-table or use Python.
In `scipy.stats`, the normal distribution is `scipy.stats.norm(loc=μ, scale=σ)`. Use `.pdf()` for the probability density, `.cdf()` for cumulative probability, and `.ppf()` for quantiles (inverse of CDF).
When to use it: Continuous data, symmetric, no hard boundaries—test scores, machine part dimensions, shipping weights.
---
The binomial distribution counts the number of successes in a fixed number of independent trials when each trial has exactly two outcomes (success or failure) and the probability of success is constant.
Two parameters define it:
The mean is `μ = n × p` and the standard deviation is `σ = √(n × p × (1 − p))`.
The distribution is discrete: outcomes are whole numbers from 0 to n.
In `scipy.stats`, use `scipy.stats.binom(n, p)`. Use `.pmf(k)` for the probability of exactly k successes, `.cdf(k)` for the probability of k or fewer successes.
When to use it: Quality control (defective units in a batch), click-through rates (clicks vs. no-clicks), survey responses (agree vs. disagree). Key check: fixed n, independent trials, constant p.
---
The Poisson distribution counts the number of events occurring in a fixed interval of time or space when events are independent and occur at a known average rate.
One parameter defines it:
For a Poisson distribution, the mean and variance are both equal to λ, so the standard deviation is `σ = √λ`.
The distribution is discrete: outcomes are non-negative integers.
In `scipy.stats`, use `scipy.stats.poisson(mu=λ)`. Use `.pmf(k)` for exactly k events, `.cdf(k)` for k or fewer.
When to use it: Server error counts per hour, customer arrivals per minute, defects per square meter of fabric. Key check: events are rare relative to opportunities, independent, and the rate λ is stable.
---
| Scenario | Data type | Distribution |
|---|---|---|
| Delivery time in hours | Continuous, symmetric | Normal |
| Number of defective items in a batch of 50 | Discrete, fixed n, constant p | Binomial |
| Number of support tickets per hour | Discrete, count per interval | Poisson |
A useful decision path: Is the variable continuous or discrete? If continuous and roughly symmetric, consider normal. If discrete and you have a fixed number of trials with a success probability, use binomial. If discrete and you are counting events per interval with no fixed upper limit, use Poisson.
---
All three distributions follow the same interface pattern in `scipy.stats`:
```python
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
print(stats.norm.cdf(75, loc=70, scale=5))
print(stats.binom.pmf(3, n=10, p=0.2))
print(stats.poisson.cdf(4, mu=2))
```
Annotate your plots with `plt.axvline()` for the mean and `plt.title()` for parameters so readers can interpret them without guessing.
---
Probability calculations are only as valid as the assumptions behind them. Before applying any distribution, verify that your data meet the conditions: independence of observations, stable rate or probability, and appropriate measurement scale. Using the wrong distribution—or trusting corrupted input data—can produce predictions that mislead business decisions. Always inspect your data for outliers, missing values, and recording errors before fitting a distribution. Document every assumption in your notebook so reviewers can audit your reasoning.
---
OpenIntro Statistics Chapter 4 covers all three distributions with detailed derivations. Use the z-table handout for normal probabilities when working without Python. Use the binomial table handout for small n problems. Practice computing results both by hand and in Python so you can catch coding errors by comparing against table values.
Answer each question, then check it. Nothing is recorded; this is your own practice.
A free tech program — complimentary, as our commitment to get America working. Help us build VoTechWorks. Tell us what works, what doesn’t, and what you want to learn.