简体   繁体   中英

Zero-Inflated Quasi-Poisson Models in R (glmmadmb, pscl)

Q: Can a valid, zero-inflated Quasi-Poisson model be fitted in R?

I know zero-inflated Poisson and zero-inflated negative binomial both can be fitted with each pscl::zeroinfl() and glmmADMB::glmmadmb() .

However, in the help-file examples for pscl::zeroinfl() , the Quasi-poisson is fitted without inflation but omitted from the inflation demonstration:

## data
data("bioChemists", package = "pscl")

## without inflation
## ("art ~ ." is "art ~ fem + mar + kid5 + phd + ment")
fm_pois  <- glm(   art ~ ., data = bioChemists, family = poisson)
fm_qpois <- glm(   art ~ ., data = bioChemists, family = quasipoisson)
fm_nb    <- glm.nb(art ~ ., data = bioChemists)

## with simple inflation (no regressors for zero component)
fm_zip  <- zeroinfl(art ~ . | 1, data = bioChemists)
fm_zinb <- zeroinfl(art ~ . | 1, data = bioChemists, dist = "negbin")

and the only options for dist are dist = c("poisson", "negbin", "geometric") .

In the help-file documentation for glmmADMB::glmmadmb() , the negative binomial is family="nbinom" while the Quasi-Poisson is family="nbinom1" and the argument definition for zeroInflation states:

zeroInflation: whether a zero-inflated model should be fitted 
              (only "poisson" and "nbinom" families).

My understanding is that Quasi-Poisson models have the advantage of accounting for overdispersion (albeit in a linear fashion); that is if P is Poisson and Q is Quasi-Poisson:

在此处输入图像描述

but perhaps because they lack a proper likelihood they cannot be as easily implemented and that's why they are apparently omitted from two of the more popular zero-inflated packages...

Q: Can a valid, zero-inflated Quasi-Poisson model be fitted in R?

A: YES, a valid, zero-inflated Quasi-Poisson model be fitted in R.

Set aside pscl::zeroinfl() and focus on glmmADMB::glmmadmb() .

A few things for glmmADMB::glmmadmb() :

  • family="nbinom1" is still a negative binomial model with a valid likelihood -- the help-file just states that the parameterization corresponds to a quasipoisson. If you dig through the guts of glmmADMB::glmmadmb() you'll see that "nbinom", "nbinom1", and "nbinom2" are all changed to family="nbinom" and that specifying "nbinom1" just creates a flag to submit tau=alpha instead of tau=(1+e1+lambda/alpha) in the .tpl file .

  • Furthermore, the package maintainer uses family="nbinom1" and zeroInflation=TRUE as the preferred model in an analysis about owls displayed on page 17 of a PDF at the ADMB website :

    gfit3 <- glmmadmb(NCalls(FoodTreatment+ArrivalTime)*SexParent+ offset(logBroodSize)+(1|Nest), data=Owls, zeroInflation=TRUE, family="nbinom1")

  • While this discussion is not about a zeroInflation=TRUE and family="nbinom1" model, Ben explains the parameterization of nbinom1 vs. quasi-poisson in the zeroInflation=FALSE case.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM