# Modelling count data where offset variable is 0 for some observations

I'm trying to help a student of a colleague. The student observed and counted bird behaviour (number of calls) in an experimental setup. The number of calls attributable to a specific observed bird during each experiment couldn't be determined but counting the number of birds that contributed to the number of calls recorded was possible. Hence my initial suggestion was to include the number of birds as an offset term in a Poisson GLM model, hence we would be fitting the expected number of calls per bird.

The problem with this is that during many observation occasions no birds (and hence no calls) were observed. The software (R in this case) complains because $\log(0) = -\inf$ (R complains about y containing -Inf data but that is purely the result of offset(log(nbirds)) being -Inf).

I actually suspect we need a hurdle model (or similar) where we have a separate binomial model for "calls observed?" (or not) and a truncated count model for the number of calls (per bird) in situations where there were calls, where we include the offset term only in the count part of the model.

Having tried this using the pscl package in R, but I'm still getting the same error:

mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
offset(log(NumberCOPO)) | 1, data = Data,
dist = "poisson")


because the same R code (glm.fit is used internally by hurdle() to fit the count model part) is checking for -Inf even though I don't think it would affect the model fit for those observations. (Is that a correct assumption?)

I can get the model to fit by adding a small number to NumberCOPO (say 0.0001) but this is a fudge at best.

Would adding this small continuity correction be OK in practice? If not, what other approaches should we be considering when handling data where we might want to use an offset in a Poisson model where the offset variable can take the value 0? All of the examples I have come across are for situations where a 0 would not be possible for the offset variable.

• In this case, it seems like your model is trying to fit a tautology: if there are 0 birds observed you'll also hear 0 birdcalls. I'm not convinced that fitting a model to rows with offset 0 is appropriate in this case. – Sycorax Feb 2 '15 at 20:38
• Thanks, as I mentioned below, that is my gut reaction too. I've expanded a little in my reply to Barry (Spacedman)'s Answer below. – Gavin Simpson Feb 2 '15 at 20:54
• I would agree with the comments that imply that Poisson rate model (that is, with the offset term) is inappropriate for those cases (and you are right saying that maybe a separate, such as binomial, model should be applied to incorporate those cases). Rate cannot be based on zero denominator. – ttnphns Feb 2 '15 at 21:07

• That's my gut reaction too; probably overthinking this, but I can envisage situation where birds observed but no calls made. Hence the hurdle model, but internally it is still using glm.fit which throws a wobble even if those values don't count in the count part of the model. I suppose I could do the hurdle model by hand but I don't want to do this, just advise the student. – Gavin Simpson Feb 2 '15 at 20:52