Estimation of the two-parameter generalized Poisson distribution (original parameterization).

```
genpoisson0(ltheta = "loglink", llambda = "logitlink",
itheta = NULL, ilambda = NULL, imethod = c(1, 1),
ishrinkage = 0.95, glambda = ppoints(5),
parallel = FALSE, zero = "lambda")
```

ltheta, llambda

Parameter link functions for \(\theta\) and \(\lambda\).
See `Links`

for more choices.
In theory the \(\lambda\) parameter is allowed to be negative to
handle underdispersion, however this is no longer supported,
hence \(0 < \lambda < 1\).
The \(\theta\) parameter is positive, therefore the default is the
log link.

itheta, ilambda

Optional initial values for \(\lambda\) and \(\theta\). The default is to choose values internally.

imethod

See `CommonVGAMffArguments`

for information.
Each value is an integer `1`

or `2`

or `3`

which
specifies the initialization method for each of the parameters.
If failure to converge occurs try another value
and/or else specify a value for `ilambda`

and/or `itheta`

.
The argument is recycled to length 2, and the first value
corresponds to `theta`

, etc.

ishrinkage, zero

See `CommonVGAMffArguments`

for information.

glambda, parallel

See `CommonVGAMffArguments`

for information.
Argument `glambda`

is similar to `gsigma`

there and is currently used only if `imethod[2] = 1`

.

An object of class `"vglmff"`

(see `vglmff-class`

).
The object is used by modelling functions such as `vglm`

,
and `vgam`

.

Although this family function is far less fragile compared to
what used to be called `genpoisson()`

it is still a
good idea to monitor convergence because
equidispersion may result in numerical problems;
try `poissonff`

instead.
And underdispersed data will definitely result in
numerical problems and warnings;
try `quasipoisson`

instead.

The generalized Poisson distribution (GPD) was proposed by Consul and Jain (1973), and it has PMF $$f(y)=\theta(\theta+\lambda y)^{y-1} \exp(-\theta-\lambda y) / y!$$ for \(0 < \theta\) and \(y = 0,1,2,\ldots\). Theoretically, \(\max(-1,-\theta/m) \leq \lambda \leq 1\) where \(m\) \((\geq 4)\) is the greatest positive integer satisfying \(\theta + m\lambda > 0\) when \(\lambda < 0\) [and then \(Pr(Y=y) = 0\) for \(y > m\)]. However, there are problems with a negative \(\lambda\) such as it not being normalized, so this family function restricts \(\lambda\) to \((0, 1)\).

This original parameterization is called the GP-0 by VGAM,
partly because there are two other common parameterizations
called the GP-1 and GP-2 (see Yang et al. (2009),
`genpoisson1`

and `genpoisson2`

)
that are more suitable for regression.
However, `genpoisson()`

has been simplified to
`genpoisson0`

by only handling positive parameters,
hence only overdispersion relative to the Poisson is accommodated.
Some of the reasons for this are described in
Scollnik (1998), e.g., the probabilities do not
sum to unity when `lambda`

is negative.
To simply things, VGAM 1.1-4 and later will only
handle positive `lambda`

.

An ordinary Poisson distribution corresponds to \(\lambda = 0\). The mean (returned as the fitted values) is \(E(Y) = \theta / (1 - \lambda)\) and the variance is \(\theta / (1 - \lambda)^3\) so that the variance is proportional to the mean, just like the NB-1 and quasi-Poisson.

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

Consul, P. C. and Jain, G. C. (1973).
A generalization of the Poisson distribution.
*Technometrics*,
**15**, 791--799.

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.

Yang, Z., Hardin, J. W., Addy, C. L. (2009).
A score test for overdispersion in Poisson regression based
on the generalized Poisson-2 model.
*J. Statist. Plann. Infer.*,
**139**, 1514--1521.

Yee, T. W. (2020).
On generalized Poisson regression.
*In preparation*.

`Genpois0`

,
`genpoisson1`

,
`genpoisson2`

,
`poissonff`

,
`negbinomial`

,
`Poisson`

,
`quasipoisson`

.

```
# NOT RUN {
gdata <- data.frame(x2 = runif(nn <- 500))
gdata <- transform(gdata, y1 = rgenpois0(nn, theta = exp(2 + x2),
logitlink(1, inverse = TRUE)))
gfit0 <- vglm(y1 ~ x2, genpoisson0, data = gdata, trace = TRUE)
coef(gfit0, matrix = TRUE)
summary(gfit0)
# }
```

Run the code above in your browser using DataCamp Workspace