Learn R Programming

VGAM (version 1.0-4)

poissonff: Poisson Family Function

Description

Family function for a generalized linear model fitted to Poisson responses. The dispersion parameters may be known or unknown.

Usage

poissonff(link = "loge", dispersion = 1, onedpar = FALSE, imu = NULL,
          imethod = 1, parallel = FALSE, zero = NULL, bred = FALSE,
          earg.link = FALSE, type.fitted = c("mean", "quantiles"),
                       percentiles = c(25, 50, 75))

Arguments

link

Link function applied to the mean or means. See Links for more choices and information.

dispersion

Dispersion parameter. By default, maximum likelihood is used to estimate the model because it is known. However, the user can specify dispersion = 0 to have it estimated, or else specify a known positive value (or values if the response is a matrix---one value per column).

onedpar

One dispersion parameter? If the response is a matrix, then a separate dispersion parameter will be computed for each response (column), by default. Setting onedpar=TRUE will pool them so that there is only one dispersion parameter to be estimated.

parallel

A logical or formula. Used only if the response is a matrix.

imu, imethod

See CommonVGAMffArguments for more information.

zero

Can be an integer-valued vector specifying which linear/additive predictors are modelled as intercepts only. The values must be from the set {1,2,…,\(M\)}, where \(M\) is the number of columns of the matrix response. See CommonVGAMffArguments for more information.

bred, earg.link

Details at CommonVGAMffArguments. Setting bred = TRUE should work for multiple responses and all VGAM link functions; it has been tested for loge, identity but further testing is required.

type.fitted, percentiles

Value

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

Warning

With multiple responses, assigning a known dispersion parameter for each response is not handled well yet. Currently, only a single known dispersion parameter is handled well.

Details

\(M\) defined above is the number of linear/additive predictors.

If the dispersion parameter is unknown, then the resulting estimate is not fully a maximum likelihood estimate.

A dispersion parameter that is less/greater than unity corresponds to under-/over-dispersion relative to the Poisson model. Over-dispersion is more common in practice.

When fitting a Quadratic RR-VGLM (see cqo), the response is a matrix of \(M\), say, columns (e.g., one column per species). Then there will be \(M\) dispersion parameters (one per column of the response matrix) if dispersion = 0 and onedpar = FALSE.

References

McCullagh, P. and Nelder, J. A. (1989) Generalized Linear Models, 2nd ed. London: Chapman & Hall.

See Also

Links, quasipoissonff, hdeff.vglm, genpoisson, zipoisson, pospoisson, oipospoisson, otpospoisson, skellam, mix2poisson, cens.poisson, ordpoisson, amlpoisson, inv.binomial, simulate.vlm, loge, polf, rrvglm, cqo, cao, binomialff, quasibinomialff, poisson, poisson.points, ruge, V1.

Examples

Run this code
# NOT RUN {
poissonff()

set.seed(123)
pdata <- data.frame(x2 = rnorm(nn <- 100))
pdata <- transform(pdata, y1 = rpois(nn, exp(1 + x2)),
                          y2 = rpois(nn, exp(1 + x2)))
(fit1 <- vglm(cbind(y1, y2) ~ x2, poissonff, data = pdata))
(fit2 <- vglm(y1 ~ x2, poissonff(bred = TRUE), data = pdata))
coef(fit1, matrix = TRUE)
coef(fit2, matrix = TRUE)

nn <- 200
cdata <- data.frame(x2 = rnorm(nn), x3 = rnorm(nn), x4 = rnorm(nn))
cdata <- transform(cdata, lv1 = 0 + x3 - 2*x4)
cdata <- transform(cdata, lambda1 = exp(3 - 0.5 *  (lv1-0)^2),
                          lambda2 = exp(2 - 0.5 *  (lv1-1)^2),
                          lambda3 = exp(2 - 0.5 * ((lv1+4)/2)^2))
cdata <- transform(cdata, y1 = rpois(nn, lambda1),
                          y2 = rpois(nn, lambda2),
                          y3 = rpois(nn, lambda3))
# }
# NOT RUN {
 lvplot(p1, y = TRUE, lcol = 2:4, pch = 2:4, pcol = 2:4, rug = FALSE) 
# }

Run the code above in your browser using DataLab