# Poisson Regression with both categorical and numerical variables: interpreting the outcomes and intercept

I have some difficulties in thoroughly interpreting all the outcomes of the Poisson Regression Model.

I have a Poisson regression model with Observed deaths as dependent variable, A categorical variable with 5 levels (ClusterAIR) and Education_level as a numerical variable. The expected deaths are used as an offset in the Poisson regression model, therefore the rate is observed/expected deaths in the model.

The dataset is divided into 5 clusters and of course I would expect that for the entire dataset (the sum of all 5 clusters) the observed/expected deaths approximate 1, as the expected deaths are calculated based on the entire dataset (corrected for age-structure), and the observed dataset contain the deaths observed in each sector of the dataset.

When running the entirely categorical poisson regression, the result is what I would expect. Intercept of 0.0756 --> exp(0,0756) = 1.08 : The rate observed/expected deaths in Cluster A (reference Cluster) is 1.08 and for the other clusters, the rate is (1.08 * multiplicative factor) sometimes above 1.00 and sometimes below 1.00. For example, Cluster C has an estimate of -0.18, which implies a multiplicative factor of 0.835 -> 1.08 * 0.835 = 0.90

However, when adding the education level as a numerical variable to the model, the rate observed/expected deaths is ABOVE 1 FOR ALL CLUSTERS (2nd image), despite for the entirety of the dataset the number of expected deaths equals the number of observed deaths. How is this possible ?: How is it possible that all parts of the dataset have a higher than expected mortality (after adding the education level as a covariate) while for the entirety of the dataset the observed deaths equal the expected deaths? How does the education level as numerical variable exactly interact with the determination of the intercept ? How can I interpret this finding?

For example, the intercept is 0.25 -> exp(0.25)=1.28, the lowest mortality is found in Cluster D with an estimate of -0.10 -> exp (-0.10)= 0.90 (multiplicative factor). The part of the dataset where the observed/expected mortality is the lowest, Cluster D, has still (1.28 *0.9) an observed/expected mortality of > 1.0 while for the entirety of the dataset this number has 1.0, and this only occurs after adding co-variates, when the categorical variable is the only variable, this phenomenom does not appear to happen, and the results are as expected (some clusters have an observed/expected mortality of > 1.0 and others of <1.0 as it is 1.0 for the entirety of the dataset).  • can you please edit your question to include the output as cut-and-pasted text (in a code block) rather than images? Images are hard to search and inaccessible to visually impaired people Dec 23, 2021 at 18:01
• I might have addressed this already: stats.stackexchange.com/questions/11096/… Categorical variable's levels are interpreted as one unit different from the base level when the default "treatment contrasts" are in effect.
– DWin
Dec 23, 2021 at 18:23
• I think this is actually a "where is the intercept?" problem, not a categorical-variable problem; i.e. the predictions the OP is making are implicitly evaluated at an education decile value of zero ... Dec 23, 2021 at 19:42
• @BenBolker: It might have some different wrinkles than the earlier problem, especially because it has an offset specification of some sort, but a "where is the intercept" is a pretty typical question in a categorical problem in regression. I suppose it could be a "why is the Intercept moving" question. The OP seemed puzzled most by the change in estimates for the categorical term when the continuous education term was entered. The Intercept now includes a "zero" assumption" for education as well as the reference="ClustAIRA" assumption which was present in the reduced model.
– DWin
Dec 24, 2021 at 1:12

You might want to build a model with no Intercept term. The R formula mechanism to do that is to include a "+0" term in the formula. That is particularly useful in situations where you have a correctly specified expected offset. (I make the point of "correctly" because you would want the expected deaths to be log-ged when being used as an offset.) In a way the offset replaces the Intercept as a reference level for predictions. You model is "telling you" that some (but not all) of the clusters other than the lowest level have higher estimate conditional on the education term. That doesn't appear to change that much with the addition of the education term.
There are other contrast specifications that are possible. I think SAS uses a sum-contrasts default. (Ill go check an edit this answer if I'm wrong.). R is able to to that as well. Look at the docs for ?contrasts. If you assign contr.sum to a particular variable you would expect some of the levels to get a negative and others to get a positive coefficient, because the reference level is the "mean effect".