VGAM (version 1.0-4)

poissonff: Poisson Family Function


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


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



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


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).


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.


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

imu, imethod

See CommonVGAMffArguments for more information.


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.


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


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


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.


\(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.


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.


Run this code

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))
# }
 lvplot(p1, y = TRUE, lcol = 2:4, pch = 2:4, pcol = 2:4, rug = FALSE) 
# }

Run the code above in your browser using DataCamp Workspace