50% off | Unlimited Data & AI Learning
Get 50% off unlimited learning

extraDistr (version 1.10.0)

GammaPoiss: Gamma-Poisson distribution

Description

Probability mass function and random generation for the gamma-Poisson distribution.

Usage

dgpois(x, shape, rate, scale = 1/rate, log = FALSE)

pgpois(q, shape, rate, scale = 1/rate, lower.tail = TRUE, log.p = FALSE)

rgpois(n, shape, rate, scale = 1/rate)

Arguments

x, q

vector of quantiles.

shape, scale

shape and scale parameters. Must be positive, scale strictly.

rate

an alternative way to specify the scale.

log, log.p

logical; if TRUE, probabilities p are given as log(p).

lower.tail

logical; if TRUE (default), probabilities are P[Xx] otherwise, P[X>x].

n

number of observations. If length(n) > 1, the length is taken to be the number required.

Details

Gamma-Poisson distribution arises as a continuous mixture of Poisson distributions, where the mixing distribution of the Poisson rate λ is a gamma distribution. When XPoisson(λ) and λGamma(α,β), then XGammaPoisson(α,β).

Probability mass function f(x)=Γ(α+x)x!Γ(α)(β1+β)x(1β1+β)α

Cumulative distribution function is calculated using recursive algorithm that employs the fact that Γ(x)=(x1)!. This enables re-writing probability mass function as

f(x)=(α+x1)!x!Γ(α)(β1+β)x(1β1+β)α

what makes recursive updating from x to x+1 easy using the properties of factorials

f(x+1)=(α+x1)!(α+x)x!(x+1)Γ(α)(β1+β)x(β1+β)(1β1+β)α

and let's us efficiently calculate cumulative distribution function as a sum of probability mass functions

F(x)=k=0xf(k)

See Also

Examples

Run this code

x <- rgpois(1e5, 7, 0.002)
xx <- seq(0, 12000, by = 1)
hist(x, 100, freq = FALSE)
lines(xx, dgpois(xx, 7, 0.002), col = "red")
hist(pgpois(x, 7, 0.002))
xx <- seq(0, 12000, by = 0.1)
plot(ecdf(x))
lines(xx, pgpois(xx, 7, 0.002), col = "red", lwd = 2)

Run the code above in your browser using DataLab