R: Generalized Poisson distribution

genpoisson {VGAM} | R Documentation

## Generalized Poisson distribution

### Description

Estimation of the two-parameter generalized Poisson distribution.

### Usage

    genpoisson(llambda = "rhobit", ltheta = "loge",
               ilambda = NULL, itheta = NULL,
               use.approx = TRUE, imethod = 1, ishrinkage = 0.95,
               zero = "lambda")

### Arguments

`llambda, ltheta` | Parameter link functions for λ and θ. See `Links` for more choices. The λ parameter lies at least within the interval [-1,1]; see below for more details, and an alternative link is `rhobit`. The θ parameter is positive, therefore the default is the log link.
`ilambda, itheta` | Optional initial values for λ and θ. The default is to choose values internally.
`use.approx` | Logical. If `TRUE` then an approximation to the expected information matrix is used, otherwise Newton-Raphson is used.
`imethod` | An integer with value `1` or `2` or `3` which specifies the initialization method for the parameters. If failure to converge occurs try another value and/or else specify a value for `ilambda` and/or `itheta`.
`ishrinkage, zero` | See `CommonVGAMffArguments` for information.

### Details

The generalized Poisson distribution has density

f(y) = θ(θ+λ * y)^(y-1) * exp(-θ-λ * y) / y!

for θ > 0 and y = 0,1,2,…. Now max(-1,-θ/m) ≤ lambda ≤ 1 where m (≥ 4) is the greatest positive integer satisfying θ + mλ > 0 when λ < 0 [and then P(Y=y) = 0 for y > m]. Note the complicated support for this distribution means, for some data sets, the default link for `llambda` will not always work, and some tinkering may be required to get it running.

As Consul and Famoye (2006) state on p.165, the lower limits on λ and m >= 4 are imposed to ensure that there are at least 5 classes with nonzero probability when λ is negative.

An ordinary Poisson distribution corresponds to lambda = 0. The mean (returned as the fitted values) is E(Y) = θ / (1 - λ) and the variance is θ / (1 - λ)^3.

For more information see Consul and Famoye (2006) for a summary and Consul (1989) for full details.

### Value

An object of class `"vglmff"` (see `vglmff-class`). The object is used by modelling functions such as `vglm`, and `vgam`.

### Warning

Monitor convergence! This family function is fragile. Don't get confused because `theta` (and not `lambda`) here really matches more closely with `lambda` of `dpois`.

### Note

This family function handles multiple responses. This distribution is potentially useful for dispersion modelling. Convergence problems may occur when `lambda` is very close to 0 or 1. If a failure occurs then you might want to try something like `llambda = extlogit(min = -0.9, max = 1)` to handle the LHS complicated constraint, and if that doesn't work, try `llambda = extlogit(min = -0.8, max = 1)`, etc.

### Author(s)

T. W. Yee

### References

Consul, P. C. and Famoye, F. (2006) Lagrangian Probability Distributions, Boston, USA: Birkhauser.

Jorgensen, B. (1997) The Theory of Dispersion Models. London: Chapman & Hall

Consul, P. C. (1989) Generalized Poisson Distributions: Properties and Applications. New York, USA: Marcel Dekker.

### See Also

`poissonff`, `dpois`. `dgenpois`, `rhobit`, `extlogit`.

### Examples

    gdata <- data.frame(x2 = runif(nn <- 200))
    gdata <- transform(gdata, y1 = rpois(nn, exp(2 - x2)))  # Poisson data
    fit <- vglm(y1 ~ x2, genpoisson, data = gdata, trace = TRUE)
    coef(fit, matrix = TRUE)
    summary(fit)

[Package VGAM version 1.0-3 Index]