The Poisson distribution is a discrete probability distribution that expresses the probability of a given number of events occurring in a fixed interval of time or space, given a fixed average rate of occurrence. It is often used in fields such as physics, finance, biology, and traffic engineering, where events are often modeled as being relatively rare but can occur at any time.
In this comprehensive article, we’ll explore the Poisson distribution, how to generate and work with Poisson distributions in R, the functions associated with Poisson distributions, and practical applications of the Poisson distribution in R.
Understanding the Poisson Distribution
A Poisson distribution is characterized by a single parameter:
- The rate parameter (
λ
): This is the average number of occurrences per interval, which could be time, space, or any other dimension. It is often derived from historical data.
The probability mass function of a Poisson distribution is given by:
P(X = k) = (λ^k * e^-λ) / k!
where e
is the base of the natural logarithm, λ
is the average rate of occurrence, k
is the number of occurrences we are interested in, and k!
is the factorial of k
.The mean and variance of a Poisson distribution are both equal to λ
.
Poisson Distribution Functions in R
R provides four functions to work with the Poisson distribution:
dpois(x, lambda, log = FALSE)
: The density function. This gives the probability of gettingx
occurrences. Iflog = TRUE
, it returns the log-probabilities.ppois(q, lambda, lower.tail = TRUE, log.p = FALSE)
: The distribution function. This gives the cumulative probability of gettingq
or fewer occurrences. Iflower.tail = FALSE
, it returns the survival function1 - ppois(q)
. Iflog.p = TRUE
, it gives the log-cumulative probabilities.qpois(p, lambda, lower.tail = TRUE, log.p = FALSE)
: The quantile function. This gives the number of occurrences corresponding to a certain cumulative probabilityp
.rpois(n, lambda)
: This generatesn
random numbers from a Poisson distribution.
Generating a Poisson Distribution in R
You can generate a Poisson distribution in R using the rpois()
function. Here’s an example:
set.seed(123) # for reproducibility
x <- rpois(1000, lambda = 5)
This code generates a dataset x
of 1000 observations drawn from a Poisson distribution with a rate of 5 occurrences per interval.
Visualizing a Poisson Distribution in R
You can visualize a Poisson distribution using a histogram or a bar plot. Given that it’s a discrete distribution, a bar plot may be more appropriate. Here’s an example:
barplot(table(x)/length(x),
main = "Poisson Distribution",
xlab = "Number of occurrences",
ylab = "Probability")

Computing Probability and Quantiles
You can calculate the probability of obtaining a certain number of occurrences using the dpois()
function. Similarly, ppois()
and qpois()
can be used to find the cumulative probability and the number of occurrences for a certain percentile (quantile), respectively.
Here’s an example:
# Probability of getting exactly 5 occurrences
prob <- dpois(5, lambda = 5)
print(prob)
# Cumulative probability of getting 5 or fewer occurrences
cum_prob <- ppois(5, lambda = 5)
print(cum_prob)
# Number of occurrences at the 90th percentile
quantile <- qpois(0.90, lambda = 5)
print(quantile)
Applications of Poisson Distribution in R
The Poisson distribution has numerous applications in R:
- Traffic Engineering: If you are modeling the number of cars that pass through an intersection in a given time interval, you might use a Poisson distribution.
- Telecommunications: The Poisson distribution can be used to model the number of phone calls coming into a call center per minute.
- Biology: In biology, a Poisson distribution can model the number of mutations in a given stretch of DNA.
- Quality Control: The Poisson distribution can model the number of defects per unit of a manufactured product.
Conclusion
The Poisson distribution is a fundamental distribution in statistics that describes the probability of a given number of events occurring in a fixed interval of time or space, given a fixed average rate of occurrence. Understanding the Poisson distribution and how to work with it in R is a crucial skill for anyone involved in statistical analysis or data science. R provides robust capabilities to work with Poisson distributions, making it a powerful tool for statistical modeling and hypothesis testing.