This calculator helps you compute the probabilities of a binomial distribution. Simply enter the number of trials (n), the probability of success (p), and the desired comparison type and value. The calculator will display the probability distribution chart, as well as the mean and variance of the distribution.
Calculator
Parameters
Interactive Distribution Chart
Learn More
Binomial Distribution
Definition: The binomial distribution is a discrete probability distribution that models the number of successes in a fixed number of independent Bernoulli trials. A Bernoulli trial is an experiment with two possible outcomes: success or failure.
Where:
- is the number of trials
- is the number of successes
- is the probability of success on each trial
- \inom{n}{k} is the binomial coefficient
- Probability of getting exactly 6 heads:
- Probability of getting between 3 and 7 heads :
- Probability of getting less than 5 heads :
- Probability of getting more than 4 heads :
Properties of Binomial Distribution
- Mean:
- Variance:
- Standard Deviation:
Poisson Approximation to Binomial Distribution
When n is large and p is small, the binomial distribution can be approximated by a Poisson distribution with parameter λ = np:
- Parameter:
- Probability Mass Function:
This approximation is generally considered good when n ≥ 20, p ≤ 0.1, and np ≤ 10.
Key Properties
- Mean:
- Variance:
- The Poisson approximation simplifies calculations when dealing with rare events in large samples
Example: If you have n = 1000 trials with p = 0.005 probability of success, instead of using the binomial formula, you can approximate using Poisson with λ = 1000 × 0.005 = 5.
Normal Approximation to Binomial Distribution
When the sample size (n) is large, the binomial distribution can be approximated by a normal distribution with:
- Mean:
- Standard Deviation:
This approximation works well when both and .
Continuity Correction
When using the normal approximation for binomial probabilities, a continuity correction should be applied:
- For , use
- For , use
- For , use
The normal approximation is particularly useful for calculating binomial probabilities when n is large, as exact calculations become computationally intensive.
Interactive Normal Approximation Explorer
Adjust n (number of trials) and p (probability of success) to see when the binomial distribution approximates a normal distribution.
Mean (μ): 15.00
Standard Deviation (σ): 2.74
Approximation Conditions:
Key Observations:
- For the normal approximation to be valid, both np ≥ 5 and n(1-p) ≥ 5 should be satisfied
- As n increases, the binomial distribution becomes more bell-shaped
- When p is close to 0 or 1, a larger n is needed for a good approximation
- The normal approximation uses μ = np and σ = √(np(1-p))
How to Calculate Binomial Probabilities in R?
library(tidyverse)
n <- 10
p <- 0.5
# P(X = 6)
# dbinom(k, size, prob) returns the probability of getting k successes in n trials
prob_equal_6 <- dbinom(6, size = n, prob = p)
print(prob_equal_6) # 0.205078125
# P(X <= 4)
# pbinom(k, size, prob) returns the probability of getting at most k successes in n trials
prob_less_equal_4 <- pbinom(4, size = n, prob = p)
print(prob_less_equal_4) # 0.376953125
# P(X > 7)
# P(X > 7) = 1 - P(X <= 7)
prob_greater_7 <- 1 - pbinom(7, size = n, prob = p)
print(prob_greater_7) # 0.0546875
# P(3 < X < 8)
# P(3 < X < 8) = P(X <= 7) - P(X <= 3)
prob_between_3_and_8 <- pbinom(7, size = n, prob = p) - pbinom(3, size = n, prob = p)
print(prob_between_3_and_8) # 0.7734375
# mean and variance
print(str_glue("Mean: {n * p}")) # 5
print(str_glue("Variance: {n * p * (1 - p)}") # 2.5
How to Calculate Binomial Probabilities in Python?
import scipy.stats as stats
n = 10
p = 0.5
# P(X = 6)
# stats.binom.pmf(k, n, p) returns the probability of getting k successes in n trials
prob_equal_6 = stats.binom.pmf(6, n, p)
print(prob_equal_6)
# P(X <= 4)
# stats.binom.cdf(k, n, p) returns the probability of getting at most k successes in n trials
prob_less_equal_4 = stats.binom.cdf(4, n, p)
print(prob_less_equal_4)
# P(X > 7)
prob_greater_7 = 1 - stats.binom.cdf(7, n, p)
print(prob_greater_7)
# P(3 < X < 8)
prob_between_3_and_8 = stats.binom.cdf(7, n, p) - stats.binom.cdf(3, n, p)
print(prob_between_3_and_8)
# mean and variance
print(f"Mean: {n * p}")
print(f"Variance: {n * p * (1 - p)}")