genpoisson {VGAM} | R Documentation |
Estimation of the two parameters of a generalized Poisson distribution.
genpoisson(llambda = "elogit", ltheta = "loge", elambda = if (llambda == "elogit") list(min = -1, max = 1) else list(), etheta = list(), ilambda = NULL, itheta = NULL, use.approx = TRUE, imethod = 1, zero = 1)
llambda, ltheta |
Parameter link functions for λ and θ.
See |
elambda, etheta |
List. Extra argument for each of the links.
See |
ilambda, itheta |
Optional initial values for λ and θ. The default is to choose values internally. |
use.approx |
Logical. If |
imethod |
An integer with value |
zero |
An integer vector, containing the value 1 or 2.
If so, λ or θ respectively
are modelled as an intercept only.
If set to |
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
is not always appropriate.
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.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
This distribution is useful for dispersion modelling.
Convergence problems may occur when lambda
is very close
to 0 or 1.
T. W. Yee
Consul, P. C. and Famoye, F. (2006) Lagrangian Probability Distributions, Boston: Birkhauser.
Jorgensen, B. (1997) The Theory of Dispersion Models. London: Chapman & Hall
Consul, P. C. (1989) Generalized Poisson Distributions: Properties and Applications. New York: Marcel Dekker.
gdata = data.frame(x2 = runif(nn <- 200)) gdata = transform(gdata, y = rpois(nn, exp(2-x2))) # Ordinary Poisson data fit = vglm(y ~ x2, genpoisson(zero = 1), gdata, trace = TRUE) coef(fit, matrix = TRUE) summary(fit)