Skip to main content
3 of 5
added 78 characters in body
Ben Bolker
  • 47.3k
  • 3
  • 130
  • 181

I don't know where you heard that a Poisson or negative binomial with an offset is preferable to a binomial model for a number of individuals surviving out of an initial number; I would normally prefer a binomial as it is closer to the actual stochastic process we think is going on. Note that the binomial model would be a binomial GLM,

$$ n_{\textrm{surv}} \sim \textrm{Binomial}(p,N) $$ — different from computing the proportion n/N and using a linear model (or something like that).

The Poisson or negative binomial models will only give sensible answers if the proportion surviving (or the proportion dying, if you quantify mortality rather than survival) is much smaller than 1. In general the variation in the number surviving becomes small as the survival probability approaches 1; the binomial model capture this phenomenon naturally, the Poisson / NB models don't. (The variance becomes small in both models as the probability approaches 0.)

If you do want to use an offset-count model instead, the method for incorporating the offset doesn't differ between Poisson and NB models, both of which almost always use a log link. That is, the model would be written as: $$ \begin{split} n_{\textrm{surv}} & \sim \textrm{Poisson}(\mu) \quad \textrm{or} \quad \sim \textrm{NegBinom}(\mu,k) \\ \mu & = \exp(\beta + \log(N)) \end{split} $$ the second line could also be written as $\log(\mu) = \beta + \log(N)$ (which looks like the regression formula containing an offset) or $\mu/N = \exp(\beta)$, which shows that you're modeling $\beta$ as the log-proportion of survival.

One possible advantage of the NB model would be that it accounts for overdispersion (e.g., among-individual variation in survival probability), which the binomial or Poisson models don't. You could handle that in the binomial world by switching to a beta-binomial or to a quasi-binomial model ...

If you were using R, assuming your variables are n (surviving number), N (initial number), ttt (a factor/categorical variable specifying treatment group), you would use

  • glm(n/N~ttt, family=binomial, weights=N) or
  • glm(n/N~ttt, family=quasibinomial, weights=N) or
  • glm(n~ttt+offset(log(N)), family=poisson) or
  • MASS::glm.nb(n~ttt+offset(log(N)))

I've never seen a model with offset(1|initial_no) in it; what software was using this ... ?

Ben Bolker
  • 47.3k
  • 3
  • 130
  • 181