Classical ML, validation, metrics, interpretation, debugging · insight-1176
Reach for a zero-inflated count model only when a separate process generates structural zeros
- Evidence type
- documented fact
- Difficulty
- hard
- Roles
- Data scientist
- Industries
- aviation, retail, insurance
Summary: situation, action, reason, boundary
Situation
A count outcome has many zeros (lounge visits per passenger, complaints per station) and a Poisson fit looks poor.
Action
Fit Poisson and negative binomial with the covariates and compare observed with predicted zero counts. Use a zero-inflated or hurdle form only when you can name why some units are always zero, and put variables describing that mechanism into the inflation part.
Reason
A zero-inflated Poisson mixes a point mass at zero (a logit or probit model of membership) with a Poisson count, so each observed zero is ambiguous.
Boundary
Counts where some units are ineligible or never exposed, such as passengers without lounge access.
Symptom or risk
Excess zeros often come from heterogeneity that a negative binomial or a missing covariate handles; a zero-inflated model then adds a second equation that cannot be identified or explained.
Exceptions
A well-defined two-stage process (visit or not, then how often) can justify a hurdle model even without structural zeros.
Trade-offs
Two sets of coefficients, more parameters, more data needed, harder communication.
Pitfalls
Interpreting the inflation coefficients as causes when they are only associations.
Lessons and concepts
Claims and their sources
statsmodels ZeroInflatedPoisson models a binary inflation (mixing probability) component with a logit link by default (probit optional), from explanatory variables supplied in exog_infl, alongside the Poisson mean part.