R: Positive Poisson Distribution Family Function

pospoisson {VGAM} | R Documentation

## Positive Poisson Distribution Family Function

### Description

Fits a positive Poisson distribution.

### Usage

    pospoisson(link = "loglink", type.fitted = c("mean", "lambda", "prob0"),
        expected = TRUE, ilambda = NULL, imethod = 1, zero = NULL, gt.1 = FALSE)

### Arguments

`link` | Link function for the usual mean (lambda) parameter of an ordinary Poisson distribution. See `Links` for more choices.
`expected` | Logical. Fisher scoring is used if `expected = TRUE`, else Newton-Raphson.
`ilambda, imethod, zero` | See `CommonVGAMffArguments` for information.
`type.fitted` | See `CommonVGAMffArguments` for details.
`gt.1` | Logical. Enforce `lambda > 1`? The default is to enforce `lambda > 0`.

### Details

The positive Poisson distribution is the ordinary Poisson distribution but with the probability of zero being zero. Thus the other probabilities are scaled up (i.e., divided by 1-P[Y=0]). The mean, lambda/(1-exp(-lambda)), can be obtained by the extractor function `fitted` applied to the object.

A related distribution is the zero-inflated Poisson, in which the probability P[Y=0] involves another parameter phi. See `zipoisson`.

### Value

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

### Warning

Under- or over-flow may occur if the data is ill-conditioned.

### Note

This family function can handle multiple responses.

Yet to be done: a `quasi.pospoisson` which estimates a dispersion parameter.

### Author(s)

Thomas W. Yee

### References

Coleman, J. S. and James, J. (1961). The equilibrium size distribution of freely-forming groups. Sociometry, 24, 36–45.

### See Also

`Pospois`, `gaitpoisson.mix`, `gaitpoisson.mlm`, `posnegbinomial`, `poissonff`, `otpospoisson`, `zapoisson`, `zipoisson`, `simulate.vlm`.

### Examples

    # Data from Coleman and James (1961)
    cjdata <- data.frame(y = 1:6, freq = c(1486, 694, 195, 37, 10, 1))
    fit <- vglm(y ~ 1, pospoisson, data = cjdata, weights = freq)
    Coef(fit)
    summary(fit)
    fitted(fit)

    pdata <- data.frame(x2 = runif(nn <- 1000))  # Artificial data
    pdata <- transform(pdata, lambda = exp(1 - 2 * x2))
    pdata <- transform(pdata, y1 = rpospois(nn, lambda))
    with(pdata, table(y1))
    fit <- vglm(y1 ~ x2, pospoisson, data = pdata, trace = TRUE, crit = "coef")
    coef(fit, matrix = TRUE)

[Package VGAM version 1.1-3 Index]