I am looking to conduct an analysis to test which variables (diagnosis, ethnicity, level of care) significantly predict the number of self-harm incidents a patient has over 2 years (observational data). I have a sample of 18 patients with between 1 and 43 self-harm incidents over 2 years (outcome variable). I then have 2 level of care (medium or enhanced), ethnicity (most participants being white) and diagnosis (most having a diagnosis of BPD). I originally was thinking of performing a Poisson regression, as my outcome variable is count data, and the variance is higher than the mean for my outcome variable. However I'm struggling with the following; as my data is observational, my sample is not equally distributed between predictors. For example, there are significantly more patients in the enhanced level of care, and significantly more white patients in the hospital. I read about adding an offset variable in the Poisson regression to control for this, however I am unsure about how to add multiple offset variables in SPSS, and what the offset variable should represent. For example, should I include the total number of beds between enhanced and medium level of care to account for this?

Any advice on the statistical design or model would be greatly appreciated as well! Feel free to redirect me to any resources if you have any.


1 Answer 1


You use an offset in Poisson (or negative binomial) regression when it makes sense to model events per something. E.g. when you observe people for different amounts of time events per year of observation, or if you have information in an aggregate form events (i.e. total number of events across all people) per total person-years (i.e. total amount of years summed up over all the people).

In such a scenario, the offset would be the natural logarithm (assuming your link function used the natural logarithm, as is almost always the case) of the "something" in the denominator. E.g. $\text{log}_e(\text{observation time in years})$ as the offset. The point is the with a log-link you are specifying something like this: $$\log \text{E} Y_i := \mu_i = \boldsymbol{\beta}\boldsymbol{X}_i + \text{offset}$$ with $Y_i ~ \text{Poisson}(\mu_i)$. So, if your offset is $\log t_i$, then you can rewrite this as $$\log \left( \frac{\text{E} Y_i}{t_i} \right) = \boldsymbol{\beta}\boldsymbol{X}.$$ That makes it nicely clear that you are modeling the expected number of events for record $i$ per unit of $t$ (e.g. events per time unit).

Almost all software allows you to provide an offset variable that contains the offset for every record. E.g. a data structure like this

subject   events   time   logtime
1         10       1      0
2         0        1      0
3         5        0.5    -0.693
4         1        2      0.693

E.g. in R you would then could then fit a very basic intercept-only Poisson model like this glm( events ~ 1 + offset(logtime), family=poisson(link="log")).

Very often Poisson regression can be questionable, because there's unexplained variation between subjects in event rates (that's an issue, even if the sample size may be too small to make a test for overdispersion significant). In these scenarios, there's a number of alternative model such a negative binomial regression and Poisson regression with a random subject effect on the intercept (the two make slightly different distributional assumptions about how event rates differ between subjects, but should otherwise be very similar), as well as zero-inflated versions of all of these (adds a lot of complexity and makes the most sense when there's really a logical reason to expect that some people should just not be able to get events - e.g. some people are immune to a disease, cured from a disease or something like that).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.