I've fitted a Zero-inflated negative Binomial (with an offset) to a count variable where there is overdispersion and a large frequency of 0's.

I've done this with the pscl package (similar to countreg I believe) and I have been trying to find the references of the package in order to write this model's equation. Also, in GLM form (not forgetting that I have an offset). However I can't find the references anywhere online and to the one's I do, there is never a direct reference to the model's equation including GLM form with an offset.

Without this, I can't interpret the output that R gives me and fully understand it.

Has anyone been able to obtain this? Please


1 Answer 1


You can find the regression equation of a zero-inflated negative binomial model from Korosteleva, O. (2018). Advanced regression models with SAS and R. CRC Press. See the two pages below.

The offset can be simply moved to the left hand side of the equation to divide the count by the offset variable. This is for the count model component only I believe since the binomial zero inflation component does not need an offset.

From glm.nb() function from the MASS package, I find that the theta parameter shown in a model summary of a negative binomial regression, denoted as r in Korosteleva (2018), reflects the dispersion parameter. Note that R parameterizes dispersion differently from SAS, Stata, and SPSS. In R, variance = mu * (1 + 1/theta * mu). The R parameter (theta) is equal to the inverse of the dispersion parameter (alpha) estimated in the other software packages. A smaller theta (large alpha) value means greater dispersion. A negative binomial model only allows overdispersion, so theta > 0 and log(theta) is the estimand. When theta = 1, variance = mu * (1 + mu) is still overdispersed: The geometric distribution is a special case of the negative binomial with the size parameter (theta) equal to 1. Only when theta is very large does a negative binomial model approximate a Poisson regression. To estimate the overdispersion ratio directly, use performance::check_overdispersion(model). If the dispersion ratio is close to one, a Poisson model fits well to the data. Dispersion ratios larger than one indicate overdispersion.

You can find the information on Page 147

and Page 147

  • 1
    $\begingroup$ Thanks for helping :) I've tried your sugestion in the performance::check_overdispersion(model) but I get the following error: "Error: Overdispersion checks can only be used for models from Poisson families or binomial families with trials > 1." how is this possible? In count variables a value 0 is allowed. $\endgroup$
    – Bileobio
    Nov 30, 2022 at 16:20
  • $\begingroup$ See victorhugg.com/r_econometrics.html for an example using check_overdispersion(). Note that there are many types of negative binomial regression, a larger variety and flexibility is given by vgam(). Yee, T. W. (2020). The VGAM package for negative binomial regression. Australian & New Zealand Journal of Statistics, 62(1), 116–131. doi.org/10.1111/anzs.12283 $\endgroup$
    – DrJerryTAO
    Dec 1, 2022 at 3:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.