# pospoisson: Positive Poisson Distribution Family Function In VGAM: Vector Generalized Linear and Additive Models

## Description

Fits a positive Poisson distribution.

## Usage

 ```1 2``` ```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.

Thomas W. Yee

## References

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

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

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```# 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 = rgaitpois(nn, lambda, truncate = 0)) with(pdata, table(y1)) fit <- vglm(y1 ~ x2, pospoisson, data = pdata, trace = TRUE, crit = "coef") coef(fit, matrix = TRUE) ```

### Example output

```Loading required package: stats4
lambda
0.8924961

Call:
vglm(formula = y ~ 1, family = pospoisson, data = cjdata, weights = freq)

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.11373    0.02678  -4.248 2.16e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log-likelihood: -2304.659 on 5 degrees of freedom

Number of Fisher scoring iterations: 4

No Hauck-Donner effect found in any of the estimates

[,1]
1 1.511762
2 1.511762
3 1.511762
4 1.511762
5 1.511762
6 1.511762
y1
1   2   3   4   5   6   7   9
531 250 139  50  20   7   2   1
VGLM    linear loop  1 :  coefficients =  0.90947484, -1.16827892
VGLM    linear loop  2 :  coefficients =  1.0222910, -1.8102784
VGLM    linear loop  3 :  coefficients =  1.0473371, -1.9794023
VGLM    linear loop  4 :  coefficients =  1.0486538, -1.9890154
VGLM    linear loop  5 :  coefficients =  1.0486578, -1.9890450
VGLM    linear loop  6 :  coefficients =  1.0486578, -1.9890450