Search code examples
rglm

How to set zero-inflated GLM intercept to positive in R?


I am trying to run some zero-inflated GLM's using the zeroinfl function, but a lot of them are giving me negative intercepts which don't make sense for my variables. Is there a way to set the intercept above zero? Thank you! For example:

zeroinfl(formula = crab.burrows.m2 ~ Algae, data = vegdata)

Pearson residuals:
    Min      1Q  Median      3Q     Max 
-1.0557 -1.0557 -0.7236  0.1067 11.8967 

Count model coefficients (poisson with log link):
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  2.40350    0.03991  60.216   <2e-16 ***
Algae        0.03964    0.02067   1.918   0.0551 .  

Zero-inflation model coefficients (binomial with logit link):
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -0.30108    0.20093  -1.498   0.1340  
Algae        0.18556    0.09047   2.051   0.0403 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Number of iterations in BFGS optimization: 1 
Log-likelihood: -525.5 on 4 Df```

Solution

  • You won't need to set the intercept to zero for the "Zero-inflation" part of the model.

    The zero-inflation model has two parts:

    • the count part (upper bit of the output) which should not have negative intercepts.

    • the zeroinflation part that models whether an observation is zero or not. This is estimated with either a logit or probit model, that in turn can have negative intercepts.