pospoisson: Positive Poisson Distribution Family Function

Description Usage Arguments Details Value Warning Note Author(s) References See Also Examples

View source: R/family.positive.R

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.

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

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
Loading required package: splines
   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

Name of linear predictor: loglink(lambda) 

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
            loglink(lambda)
(Intercept)        1.048658
x2                -1.989045

VGAM documentation built on Jan. 16, 2021, 5:21 p.m.