VGAM (version 1.1-2)

gatnbinomial.mix: Generally-Altered and -Truncated Negative Binomial Regression Family Function (GAT--NB--NB Mixture Variant)

Description

Fits a generally-altered and -truncated negative binomial regression (mixture of 2 NBs on differing support). The truncation may include values in the upper tail.

Usage

gatnbinomial.mix(alter = NULL, truncate = NULL,
    zero = c("pobs.a", "size"), parallel = FALSE,
    lpobs.a = "logitlink", lmunb.p = "loglink", lsize.p = "loglink",
    lmunb.a = "loglink", lsize.a = "loglink",
    type.fitted = c("mean", "pobs.a", "Pobs.a", "prob.a", "prob.t"),
    imethod = 1, imunb.p = NULL, isize.p = NULL,
    imunb.a = imunb.p, isize.a = isize.p, ishrinkage = 0.95,
    probs.y = 0.35, cutoff.prob = 0.999, eps.trig = 1e-7,
    max.chunk.MB = 30)

Arguments

alter, truncate

Very similar to gatpoisson.mix. Note: alter must be assigned a vector of length 3 or more for this function to work. In general, the regression tends to be more stable when length(alter) is not too small and the values of alter are spread out over the entire support.

lpobs.a, lmunb.p, lmunb.a

Link functions; the .p and .a refer to the parent and altered distributions respectively. See Links for more choices and information.

lsize.p, lsize.a

Same as above.

parallel, type.fitted

Very similar to gatpoisson.mix; the former concerns: constrain the mean and size parameters to be equal? Setting parallel = TRUE is probably a good idea for many data sets, especially when length(alter) is low and the values of alter are not spread out.

imethod, imunb.p, isize.p

See CommonVGAMffArguments for information.

imunb.a, isize.a

See CommonVGAMffArguments for information.

probs.y, ishrinkage

See CommonVGAMffArguments for information.

zero

See CommonVGAMffArguments and gatpoisson.mix for information.

cutoff.prob, eps.trig, max.chunk.MB

See negbinomial for information.

Value

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

The fitted.values slot of the fitted object, which should be extracted by the generic function fitted, are similar to gatnbinomial.mlm.

Warning

The same caution needed for gatnbinomial.mlm and gatpoisson.mix applies here, however this function is a bit more parametric (structured) in comparison to .mlm functions, especially when parallel = TRUE.

Details

This distribution, also known as the GAT--NB--NB mixture, is an alternative to gatpoisson.mix and allows for overdispersion relative to the Poisson distribution. Because the size parameters are estimated this family function is more difficult to fit and is numerically fraught, in comparison.

The distribution is also a more structured model compared to gatnbinomial.mlm because the (outer) distribution of the altered values is also an NB too.

References

Yee, T. W. and Ma, C. C. (2019) Generally-altered, -inflated and -truncated count regression, with application to heaped and seeped data. In preparation.

See Also

Gaitnbinom.mix, gatnbinomial.mlm, gatpoisson.mix, CommonVGAMffArguments, simulate.vlm.

Examples

Run this code
# NOT RUN {
avec <- seq(5, 25, by = 5)  # Alter these values
tvec <- c(4, 7, 22)   # Truncate these values
pobs.a <- logitlink(-0.5, inverse = TRUE)  # About 0.5
gdata <- data.frame(x2 = runif(nn <- 1000))
gdata <- transform(gdata, munb.p = exp(2 + 0 * x2), size.p = exp(1))
gdata <- transform(gdata,
  y1 = rgaitnbinom.mix(nn, size.p = size.p, munb.p = munb.p,
         pobs.a = pobs.a, truncate = tvec, alter = avec))
gatnbinomial.mix(alter = avec)
(ty1 <- with(gdata, table(y1)))
# }
# NOT RUN {
plot(as.numeric(names(ty1)), c(ty1) / sum(ty1), xlab = "y",
     ylab = "Proportion", las = 1, type = "h", col = "blue")
fit1 <- vglm(y1 ~ 1, trace = TRUE, data = gdata,
             gatnbinomial.mix(alter = avec, truncate = tvec,
                              parallel = TRUE))
head(fitted(fit1, type.fitted = "Pobs.a"))
head(predict(fit1))
coef(fit1, matrix = TRUE)
summary(fit1) 
# }

Run the code above in your browser using DataLab