Density, distribution function, quantile function and random
generation for the Poisson distribution with parameter
1 2 3 4
vector of (non-negative integer) quantiles.
vector of quantiles.
vector of probabilities.
number of random values to return.
vector of (non-negative) means.
logical; if TRUE, probabilities p are given as log(p).
logical; if TRUE (default), probabilities are P[X ≤ x], otherwise, P[X > x].
The Poisson distribution has density
p(x) = λ^x exp(-λ)/x!
for x = 0, 1, 2, … . The mean and variance are E(X) = Var(X) = λ.
If an element of
x is not integer, the result of
is zero, with a warning.
p(x) is computed using Loader's algorithm, see the reference in
The quantile is right continuous:
qpois(p, lambda) is the smallest
integer x such that P(X ≤ x) ≥ p.
lower.tail = FALSE allows to get much more precise
results when the default,
lower.tail = TRUE would return 1, see
the example below.
dpois gives the (log) density,
ppois gives the (log) distribution function,
qpois gives the quantile function, and
rpois generates random deviates.
lambda will result in return value
NaN, with a warning.
The length of the result is determined by
rpois, and is the maximum of the lengths of the
numerical arguments for the other functions.
The numerical arguments other than
n are recycled to the
length of the result. Only the first elements of the logical
arguments are used.
dpois uses C code contributed by Catherine Loader
qpois uses the Cornish–Fisher Expansion to include a skewness
correction to a normal approximation, followed by a search.
Ahrens, J. H. and Dieter, U. (1982). Computer generation of Poisson deviates from modified normal distributions. ACM Transactions on Mathematical Software, 8, 163–179.
Distributions for other standard distributions, including
dbinom for the binomial and
the negative binomial distribution.
1 2 3 4 5 6 7 8 9 10 11 12 13
require(graphics) -log(dpois(0:7, lambda = 1) * gamma(1+ 0:7)) # == 1 Ni <- rpois(50, lambda = 4); table(factor(Ni, 0:max(Ni))) 1 - ppois(10*(15:25), lambda = 100) # becomes 0 (cancellation) ppois(10*(15:25), lambda = 100, lower.tail = FALSE) # no cancellation par(mfrow = c(2, 1)) x <- seq(-0.01, 5, 0.01) plot(x, ppois(x, 1), type = "s", ylab = "F(x)", main = "Poisson(1) CDF") plot(x, pbinom(x, 100, 0.01), type = "s", ylab = "F(x)", main = "Binomial(100, 0.01) CDF")
Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.