Poisson {stats} R Documentation

## The Poisson Distribution

### Description

Density, distribution function, quantile function and random generation for the Poisson distribution with parameter `lambda`.

### Usage

```dpois(x, lambda, log = FALSE)
ppois(q, lambda, lower.tail = TRUE, log.p = FALSE)
qpois(p, lambda, lower.tail = TRUE, log.p = FALSE)
rpois(n, lambda)
```

### Arguments

 `x` vector of (non-negative integer) quantiles. `q` vector of quantiles. `p` vector of probabilities. `n` number of random values to return. `lambda` vector of (non-negative) means. `log, log.p` logical; if TRUE, probabilities p are given as log(p). `lower.tail` logical; if TRUE (default), probabilities are P[X <= x], otherwise, P[X > x].

### Details

The Poisson distribution has density

p(x) = lambda^x exp(-lambda)/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 `dpois` is zero, with a warning. p(x) is computed using Loader's algorithm, see the reference in `dbinom`.

The quantile is left continuous: `qpois(q, lambda)` is the largest integer x such that P(X <= x) < q.

Setting `lower.tail = FALSE` allows to get much more precise results when the default, `lower.tail = TRUE` would return 1, see the example below.

### Value

`dpois` gives the (log) density, `ppois` gives the (log) distribution function, `qpois` gives the quantile function, and `rpois` generates random deviates.
Invalid `lambda` will result in return value `NaN`, with a warning.

### Source

`dpois` uses C code contributed by Catherine Loader (see `dbinom`).

`ppois` uses `pgamma`.

`qpois` uses the Cornish–Fisher Expansion to include a skewness correction to a normal approximation, followed by a search.

`rpois` uses

Ahrens, J. H. and Dieter, U. (1982). Computer generation of Poisson deviates from modified normal distributions. ACM Transactions on Mathematical Software, 8, 163–179.

`dbinom` for the binomial and `dnbinom` for the negative binomial distribution.

### Examples

```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")
```

[Package stats version 2.9.0 Index]