Skip to main content

ZINB — Zero-Inflated Negative Binomial

ZINB combines the zero-inflation idea (ZIP) with Negative Binomial (NegBin) — suitable when count data has both excess zeros and overdispersion. It is the most flexible model in the count family when both problems coexist.

When to use

Use ZINB when there are excess zeros AND the count part is overdispersed (variance > mean). If only overdispersion (no excess zeros) ⇒ NegBin; only excess zeros (no overdispersion) ⇒ ZIP.


Specification

Like ZIP but with the count part following a Negative Binomial (with dispersion parameter α\alpha):

P(Yi=0)=πi+(1πi)(1+αμi)1/αP(Y_i = 0) = \pi_i + (1-\pi_i)\,(1+\alpha\mu_i)^{-1/\alpha}

where πi\pi_i is the "always zero" part (logit/probit) and the NegBin count part has μi=exp(Xiβ)\mu_i = \exp(X_i\beta).


Running in EcoLab

  1. Modeling module → Count data family → ZINB.
  2. Declare the count-part and inflation-part variables.
  3. Run; compare AIC/BIC/Vuong with ZIP & NegBin to choose the model; export the replication code.

Replication code

* ===== ZINB — Zero-Inflated Negative Binomial =====
* Count part: patents ~ rd_spend + firm_size
* Inflation part: inflate(small_firm)
zinb patents rd_spend firm_size, inflate(small_firm) vuong

* IRR for the count part
zinb patents rd_spend firm_size, inflate(small_firm) irr

* Vuong test: significant ⇒ ZINB preferred over NegBin
* Compare AIC/BIC with ZIP and NegBin
estimates store zinb_m
quietly zip patents rd_spend firm_size, inflate(small_firm)
estimates store zip_m
quietly nbreg patents rd_spend firm_size
estimates store nb_m
estimates stats zinb_m zip_m nb_m

Limitations

  • Many parameters ⇒ needs a large sample; risk of overfitting.
  • Complex interpretation; model choice should rest on theory + information criteria.

Video tutorial

Video Tutorial: Guide to running ZINB (Zero-Inflated Negative Binomial) in EcoLab

See also