Tutorials › Generalized Linear Mixed Models (GLMM) › A Worked Poisson Random-Intercept Interpretation

Random Intercepts and Slopes · Tutorial 43 of 698

A Worked Poisson Random-Intercept Interpretation

You will calculate and interpret conditional event rates from a Poisson random-intercept model, including the multiplicative roles of covariates and cluster deviations.

Intermediate 9 min read

What You'll Learn

  • Write a Poisson random-intercept model with an exposure offset.
  • Calculate conditional event rates for specified clusters and covariate values.
  • Interpret the fixed intercept and covariate coefficient in rate units.
  • Convert a cluster’s link-scale deviation into a multiplicative rate adjustment.
  • Compare rates and expected counts without confusing exposure with rate.
  • Recognize the assumptions and limitations behind conditional interpretations.

From a fitted model to a cluster-specific rate

A fitted mixed model is often summarized by coefficients and a variance estimate, but interpretation requires putting those quantities together for a particular covariate value and cluster. In a Poisson random-intercept model, the fixed effects describe a shared rate pattern, while each cluster’s random intercept shifts that pattern on the log-rate scale. Exponentiating the combined linear predictor gives the conditional rate for that cluster.

The calculation is conditional: it treats the cluster deviation as specified, rather than averaging over the distribution of possible clusters. This distinction matters when reporting rates for named or selected clusters. It also makes clear why two clusters at the same covariate value can have different fitted rates, even though they share the same fixed-effect slope.

Model: Let \(Y_{ij}\) be a count for unit \(i\) in cluster \(j\), observed over a known positive exposure \(E_{ij}\). For a covariate \(x_{ij}\), a Poisson random-intercept model is
$$ Y_{ij}\mid b_j \sim \operatorname{Poisson}(\mu_{ij}),\qquad \log(\mu_{ij})=\log(E_{ij})+\beta_0+\beta_1x_{ij}+b_j,\qquad b_j\sim N(0,\tau^2). $$
Here \(b_j\) is the cluster-specific random intercept, and \(\log(E_{ij})\) is an offset with coefficient fixed at 1. Conditional on the random effects, the counts are assumed independent with Poisson means \(\mu_{ij}\). The model also assumes that the random intercepts are independent across clusters and, for the usual population interpretation, independent of the covariates and exposures.

The Poisson assumption means the conditional variance equals the conditional mean: \(\operatorname{Var}(Y_{ij}\mid b_j)=\mu_{ij}\). The offset accounts for different amounts of exposure. Dividing the conditional mean by exposure gives the event rate per exposure unit:

$$ \lambda_{ij\mid b_j} =\frac{\mu_{ij}}{E_{ij}} =\exp(\beta_0+\beta_1x_{ij}+b_j). $$

For example, if exposure is measured in person-years, the rate is in events per person-year. The expected count still depends on exposure: \(\mu_{ij}=E_{ij}\lambda_{ij\mid b_j}\). A rate and an expected count are related, but they are not interchangeable.

Reading the fixed effects and cluster deviation

At \(x=0\) and \(b_j=0\), the conditional rate is \(\exp(\beta_0)\). Thus, the fixed intercept is the log rate at the reference value of the covariate for a cluster whose random intercept is zero. For a one-unit increase in \(x\), holding the cluster fixed, the conditional rate is multiplied by \(\exp(\beta_1)\). If \(x\) is measured in ten-point increments, this is the rate ratio for a ten-point increase, not for a one-point increase on the original scale.

A cluster deviation \(b_j\) is an additive shift on the log-rate scale. On the rate scale, its multiplier is \(\exp(b_j)\). A positive deviation raises the rate relative to the \(b_j=0\) reference cluster at the same covariate value; a negative deviation lowers it. The multiplier applies at every value of \(x\), because this model has a random intercept but no random slope.

Interpretation: For a specified cluster \(j\) and covariate value \(x\), the conditional rate is \(\exp(\beta_0+\beta_1x+b_j)\). The fixed coefficient \(\beta_1\) describes a common conditional rate ratio \(\exp(\beta_1)\) for a one-unit increase in \(x\). The cluster deviation \(b_j\) multiplies the rate by \(\exp(b_j)\) relative to the zero-deviation cluster at the same \(x\).

Worked conditional rate calculations

Worked Example: Comparing Two Clusters at the Same Covariate Value

Hypothetical fitted model. Suppose events are counted per person-year, and \(x\) is a predictor measured in ten-point increments. Let \(\hat{\beta}_0=\log(2)=0.6931\), \(\hat{\beta}_1=\log(1.5)=0.4055\), and suppose the estimated deviations for clusters A and B are \(\hat b_A=\log(1.2)=0.1823\) and \(\hat b_B=\log(0.6)=-0.5108\). These values are illustrative model estimates, not results from a real study.

At \(x=1\), cluster A’s fitted conditional rate is

$$ \hat\lambda_{A\mid x=1} =\exp(0.6931+0.4055+0.1823) \approx \exp(1.2809) \approx 3.600 \text{ events per person-year}. $$

Equivalently, the reference rate of 2 is multiplied by 1.5 for the covariate increase and by 1.2 for cluster A: \(2(1.5)(1.2)=3.600\). At the same covariate value, cluster B’s rate is

$$ \hat\lambda_{B\mid x=1} =\exp(0.6931+0.4055-0.5108) \approx \exp(0.5878) \approx 1.800 \text{ events per person-year}. $$

The rate ratio for A versus B is \(3.600/1.800=2.000\). It also follows directly from their deviations: \(\exp(\hat b_A-\hat b_B)=\exp(\log(1.2)-\log(0.6))=2\). The comparison is conditional on \(x=1\); it does not say that the clusters differ by a causal effect.

Worked Example: Interpreting the Covariate Effect Within a Cluster

Continue with the hypothetical coefficients above. For cluster A, compare the conditional rates at \(x=0\) and \(x=2\), keeping the cluster unchanged.

At \(x=0\), the covariate contribution is zero:

$$ \hat\lambda_{A\mid x=0} =\exp(0.6931+0.1823) =2(1.2) =2.400 \text{ events per person-year}. $$

At \(x=2\), the linear predictor includes two increments of \(\hat\beta_1\):

$$ \hat\lambda_{A\mid x=2} =\exp(0.6931+2(0.4055)+0.1823) =2(1.5)^2(1.2) =5.400 \text{ events per person-year}. $$

The fitted rate ratio is \(5.400/2.400=2.250\), equal to \(\exp(2\hat\beta_1)=(1.5)^2=2.250\). Thus, an increase of two units of \(x\), or twenty points on the original predictor scale, is associated with a 2.25-fold conditional rate at a fixed cluster. It is not a 2.25-event increase; the absolute rate difference here is \(5.400-2.400=3.000\) events per person-year.

Worked Example: Converting a Conditional Rate to an Expected Count

Suppose a hypothetical observation in cluster A has \(x=2\) and exposure \(E=0.5\) person-years. The conditional rate from the previous calculation is 5.400 events per person-year. The expected count for this exposure is therefore

$$ \hat\mu =E\hat\lambda_{A\mid x=2} =(0.5\text{ person-years})(5.400\text{ events per person-year}) =2.700\text{ events}. $$

A Poisson count can be a whole number, while its expected value need not be. The value 2.700 is the model’s conditional mean count, not a prediction that exactly 2.700 events will be observed. If exposure doubled to 1.0 person-year with the same rate, the expected count would double to \(1.0(5.400)=5.400\), while the rate would remain 5.400 events per person-year.

Why the rate-ratio interpretation works

The fixed-effect and random-intercept interpretations follow from subtracting log rates and then exponentiating. For two covariate values \(x_a\) and \(x_b\) in the same cluster, the shared intercept and random deviation cancel:

$$ \log(\lambda_{ij\mid b_j}(x_b))-\log(\lambda_{ij\mid b_j}(x_a)) =\beta_1x_b-\beta_1x_a =\beta_1(x_b-x_a). $$

Exponentiating both sides gives

$$ \frac{\lambda_{ij\mid b_j}(x_b)}{\lambda_{ij\mid b_j}(x_a)} =\exp\{\beta_1(x_b-x_a)\}. $$

For a one-unit change, \(x_b-x_a=1\), so the ratio is \(\exp(\beta_1)\). Similarly, for two clusters at the same \(x\), subtracting their log rates cancels both fixed-effect terms:

$$ \log(\lambda_{ij\mid b_A}(x))-\log(\lambda_{ij\mid b_B}(x)) =b_A-b_B, \qquad \frac{\lambda_{ij\mid b_A}(x)}{\lambda_{ij\mid b_B}(x)} =\exp(b_A-b_B). $$

These identities justify interpreting the covariate coefficient as a common conditional rate ratio and the random intercept as a cluster-specific multiplicative adjustment. They rely on the model having a shared fixed slope and random intercept only. A model with a cluster-specific slope would not have this same constant covariate rate ratio across clusters.

Checks, alternatives, and limitations

Before interpreting a calculated rate, check that the covariate reference value and units are explicit, the exposure offset is correctly specified, and the chosen cluster deviation is on the log scale. If an estimated deviation is reported as a multiplier instead, use that multiplier directly and do not exponentiate it again. A fitted cluster deviation is an estimate; its uncertainty is not represented by the plug-in rate calculation alone.

  • Check the response and exposure. The outcome should be a nonnegative event count, and the exposure should be positive and meaningful. A misspecified exposure or omitted important exposure differences can make rates misleading.
  • Check conditional dispersion and dependence. The model assumes Poisson variation given the random effects and conditional independence of counts. Stronger remaining overdispersion, excess zeros, or serial dependence can indicate that the model does not adequately describe the data.
  • Check the random-intercept structure. A single cluster deviation shifts all covariate-specific rates by the same multiplier. If observed cluster patterns suggest different covariate trends, a random-intercept-only interpretation may be inadequate.
  • Check covariate support. A calculated rate far outside the observed covariate range may be an extrapolation, even if the arithmetic is correct.

The main alternative without a random intercept is a Poisson regression with a shared rate pattern and no modeled cluster-to-cluster intercept variation. It may be too restrictive when clusters differ systematically. Treating clusters as separate fixed effects is another option when inference is focused on those particular observed clusters, but it uses a different representation and does not model a distribution of cluster deviations in the same way. A random-slope model allows the covariate effect to vary by cluster, but that is beyond the model interpreted here.

The random effects are conventionally centered at zero on the log scale. Therefore, \(\exp(\beta_0+\beta_1x)\) is the conditional rate for a cluster with \(b_j=0\), not automatically the arithmetic mean rate across all clusters. Averaging rates over random effects is a separate calculation. Likewise, the conditional rates above are not population-averaged rates. These distinctions matter when the target is the average outcome across a population rather than a specified cluster.

Common pitfall: A reader sees \(b_j=0.1823\) and concludes that the cluster rate is 0.1823 events higher. This is incorrect because \(b_j\) is a log-rate shift, not an additive rate difference. The corresponding multiplier is \(\exp(0.1823)\approx1.200\), so the cluster rate is 20% higher than the zero-deviation rate at the same covariate value. The absolute difference depends on the baseline rate.

Check Your Understanding

Answer each question, then compare with the solutions.

  1. A model has \(\hat\beta_1=\log(1.25)\). What conditional rate ratio corresponds to a two-unit increase in \(x\), holding the cluster fixed?
  2. At a specified \(x\), the zero-deviation rate is 4 events per exposure unit and a cluster has \(b_j=\log(0.5)\). What is its conditional rate?
  3. For a conditional rate of 3 events per person-year and exposure of 2 person-years, calculate the expected count.
  4. Why is \(\exp(\beta_0)\) not generally the average rate across clusters at \(x=0\)?

Solutions. (1) The rate ratio is \(\exp\{2\log(1.25)\}=(1.25)^2=1.5625\), or approximately 1.563. (2) The cluster multiplier is \(\exp\{\log(0.5)\}=0.5\), so its rate is \(4(0.5)=2.000\) events per exposure unit. (3) The expected count is exposure times rate: \(2(3)=6\) events. (4) \(\exp(\beta_0)\) is the rate at \(b_j=0\); rates for other clusters are multiplied by \(\exp(b_j)\). An average across clusters therefore requires averaging those rates over the random-effect distribution, rather than simply reading off the zero-deviation rate.

Clinical Biostats