testZeroInflation returns ratioObsSim = Inf
Closed this issue · 6 comments
Hi,
I'm having a bit of an issue understanding the output from the testZeroInflation function.
If i run a very simple model such as this (this is just an example but the result from this and more complex models are the same).
m1 <- glmmTMB(lrs ~ 1, data = repro, family = "poisson")
s1a <- simulateResiduals(m1)
testZeroInflation(s1a)
The output i get it:
DHARMa zero-inflation test via comparison to expected zeros with simulation under H0 = fitted model
data: simulationOutput
ratioObsSim = Inf, p-value < 2.2e-16
alternative hypothesis: two.sided
In this particular dataset, there are 6 zero values.
I'm not entirely sure what to make of this output and ratioObsSim = Inf
Using glmmTMB v 1.1.5 and DHARMa v 0.4.6.
Any advice would be great!
I assume it is inf because in the simulations, the mean number of simulated zeros is 0, so the ratio obs/sim is 6/0. Can you
- Show the associated plot
- Increase the number of simulations in simulateResiduals to 10.000
- Have a look at the predictions of your model, i.e. do you predict very high incidences that make zeros impossible?
Also, have you tried to switch on the ZIP term in glmmTMB - does that suggest zero-inflation?
Hi,
See below! That makes complete sense, as you said, i think it's because the high predictions make zeros impossible.
The ZIP term definitely suggests zero-inflation.
Zero-inflation model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.3694 0.4108 -10.64 <2e-16 ***
I had just been concerned about the Inf RatioObsSim: but it makes complete sense as to why! Just thought i had misspecified something....
yeah, not sure about the zero-inflation though, note that the ZIP model in glmmTMB has, afaik, a logit link, so you should read -4 as an extremely low probability of zeros. For seeing if you have zero-inf, look at AIC or DHARMa simulateLRT.
Have you checked for overdispersion? You are fitting a Poisson model - it would be very rare that you don’t have overdispersion in real data. In this case, change to neg bin.
Aaah ok -
So in this case:
DHARMa simulated LRT
data: m0: m1 m1: m2
LogL(M1/M0) = 37.09, p-value < 2.2e-16
alternative hypothesis: M1 describes the data better than M0
m1 is a zinb model, and m0 is a nb model.
Yes that is in favor of ZIP but I would still check for overdispersion.
OK, but I think there’s nothing wrong with the DHARMa output, so I will close this.