4.2 Poisson Regression & Exposure Offsets
Key Takeaways
- In casualty frequency modeling, the expected claim count is E[Y_i] = e_i * mu_i, where e_i is earned exposure and mu_i is the annualized claim frequency per unit exposure.
- Under a log link, incorporating exposure yields ln(E[Y_i]) = ln(e_i) + x_i^T * beta, establishing ln(e_i) as an offset whose regression coefficient is constrained a priori to exactly 1.0.
- Modeling raw claim counts Y_i with an offset of ln(e_i) is mathematically equivalent to modeling empirical claim frequency Y_i / e_i with prior weights equal to e_i.
- The Poisson regression model assumes independent claim events, constant occurrence intensity over the exposure period, and strict equidispersion (Var(Y) = E[Y]).
- A critical actuarial modeling error is entering raw exposure e_i instead of ln(e_i) as an offset, or including exposure as an unconstrained regression variable, which violates exposure additivity.
The Poisson Distribution for Insurance Claim Counts
In property and casualty insurance, claim frequency represents the rate at which insured losses occur over a defined period of coverage. The classical starting point for modeling claim counts is the Poisson distribution.
A discrete random variable $Y$ representing the number of claims reported on a policy follows a Poisson distribution with parameter $\lambda > 0$ if its probability mass function is given by:
The defining characteristic of the Poisson distribution is equidispersion, meaning its expected value and variance are mathematically identical:
In an insurance portfolio, policyholders do not all share the same exposure to risk. A commercial fleet policy covering 100 power units over an entire policy year has a vastly higher expected claim count than a personal auto policy covering a single vehicle for one month. Therefore, Poisson modeling must explicitly incorporate the volume of earned exposure.
Incorporating Exposure: The Offset Derivation
Let:
- $Y_i$ denote the observed claim count for policy $i$ ($y_i \in {0, 1, 2, \dots}$).
- $e_i$ denote the earned exposure for policy $i$ (measured in earned car-years, policyholder years, house-years, or 100 units of payroll).
- $\mu_i$ denote the underlying expected claim frequency per unit of exposure (the annualized hazard rate).
The expected number of claims $\lambda_i = \mathbb{E}[Y_i]$ is directly proportional to earned exposure:
To relate frequency $\mu_i$ to rating variables $\mathbf{x}i = [1, x{i1}, \dots, x_{ik}]^T$, we specify a Generalized Linear Model with the standard log link function:
Substituting this into the expected claim count expression and taking the natural logarithm:
Definition of an Offset
In statistical regression, an offset is defined as an explanatory variable whose regression coefficient is not estimated from data, but is constrained a priori to equal exactly 1.0.
Here, $\ln(e_i)$ acts as an offset. It enters the linear predictor with a fixed parameter of 1.0:
Why the Coefficient Must Equal 1.0: Exposure Additivity
Constraining the coefficient of $\ln(e_i)$ to 1.0 enforces strict exposure proportionality (homogeneity of degree 1):
- If exposure doubles from $1.0$ car-year to $2.0$ car-years, the expected claim count must double exactly: $\mathbb{E}[Y] = 2.0 \cdot \mu$.
- If a policyholder purchases insurance for two consecutive 6-month terms ($e_1 = 0.5, e_2 = 0.5$), the total expected claim count across both terms equals the expected claim count of a single 12-month policy ($e = 1.0$):
If an actuary mistakenly includes $\ln(e_i)$ as an unconstrained covariate and the regression estimates a coefficient $\hat{\beta}_e = 0.85$, the expected claim count scales as $e^{0.85}$. A 6-month policy would have an expected count factor of $0.5^{0.85} \approx 0.5548$. Two consecutive 6-month policies would produce an expected factor of $0.5548 + 0.5548 = 1.1096$—charging the policyholder roughly $11%$ more than an identical 12-month policy. This violates fundamental actuarial principles of cost-causation and exposure additivity.
Frequency Modeling Alternatives: Count Offset vs. Weighted Frequency
In actuarial practice, there are two distinct ways to structure a Poisson GLM in statistical software. Both approaches are mathematically equivalent and yield identical parameter estimates, standard errors, and deviance statistics.
Approach 1: Raw Count with Offset
- Target variable: Raw claim counts $Y_i \in {0, 1, 2, \dots}$
- Distribution family: Poisson with log link
- Exposure specification: $\text{offset} = \ln(e_i)$
The log-likelihood function is:
Differentiating with respect to the regression parameter $\beta_j$ gives the score equation:
Approach 2: Empirical Frequency with Prior Weights
- Target variable: Empirical claim frequency $F_i = \frac{Y_i}{e_i}$
- Distribution family: Poisson with log link
- Prior weight: $\omega_i = e_i$ (no offset)
In the Exponential Dispersion Family, the dispersion function with prior weights is $a(\phi) = \frac{\phi}{\omega_i} = \frac{1}{e_i}$ (since $\phi = 1$ for Poisson). The weighted quasi-log-likelihood for frequency $f_i$ is:
Differentiating with respect to $\beta_j$ gives the exact same score equation:
Because the score equations and the negative Hessian matrices (Fisher Information) are identical up to constants independent of $\boldsymbol{\beta}$, both methods produce identical coefficients $\hat{\boldsymbol{\beta}}$ and covariance matrices $\widehat{\text{Var}}(\hat{\boldsymbol{\beta}})$.
Software Implementation Syntax Comparison
| Software | Approach 1: Count with Offset | Approach 2: Frequency with Weights |
|---|---|---|
| R | glm(claims ~ x1 + x2, family = poisson(link = "log"), offset = log(exposure), data = df) | glm(claims/exposure ~ x1 + x2, family = poisson(link = "log"), weights = exposure, data = df) |
| Python (statsmodels) | sm.GLM(df['claims'], X, family=sm.families.Poisson(), offset=np.log(df['exposure'])).fit() | sm.GLM(df['claims']/df['exposure'], X, family=sm.families.Poisson(), freq_weights=df['exposure']).fit() |
| SAS | PROC GENMOD; MODEL claims = x1 x2 / DIST=POISSON LINK=LOG OFFSET=log_exposure; | PROC GENMOD; MODEL frequency = x1 x2 / DIST=POISSON LINK=LOG; WEIGHT exposure; |
POISSON MODELING PATHS
│
┌──────────────────────┴──────────────────────┐
▼ ▼
Approach 1: Count + Offset Approach 2: Weighted Frequency
Response: Y (Claims) Response: F = Y / Exposure
Offset: ln(Exposure) Weights: Exposure
Link: Log Link: Log
│ │
└──────────────────────┬──────────────────────┘
▼
Score Equation: Σ (y_i - e_i * mu_i) * x_ij = 0
Identical Coefficients: beta_hat
Identical Relativities: exp(beta_hat)
Underlying Assumptions of the Poisson Regression Model
When applying a Poisson GLM to insurance frequency data, the actuary implicitly relies on four key statistical assumptions:
- Independence of Events: The occurrence of a claim on policy $i$ is independent of claims on all other policies, and independent of prior claims on the same policy. This assumption is violated during catastrophic weather events (such as hail storms or freezes that damage thousands of homes simultaneously) or multi-claimant vehicle accidents.
- Homogeneous Intensity Over Time: Within any policy's exposure period, the instantaneous rate of claim occurrence $\mu_i$ remains constant. In reality, claim intensity fluctuates with seasonal driving patterns, weather changes, and economic cycles.
- Equidispersion: The conditional variance of claim counts equals the conditional mean ($\text{Var}(Y_i \mid \mathbf{x}_i) = \mathbb{E}[Y_i \mid \mathbf{x}_i]$). In empirical insurance data, this assumption almost never holds; variance typically exceeds the mean, a condition known as overdispersion.
- Infinitesimal Probability: Over an infinitesimally small time interval $\Delta t$, the probability of exactly one claim is approximately $\mu_i \Delta t$, and the probability of two or more claims is negligible ($o(\Delta t)$).
Actuarial Exam Traps & Implementation Pitfalls
[!WARNING] Trap 1: Passing Raw Exposure as the Offset A common programming error is writing
offset = exposureinstead ofoffset = log(exposure). If a policy has an exposure of $0.5$ car-years, passing $0.5$ directly into a log-link model multiplies the expected count by $\exp(0.5) \approx 1.6487$ instead of scaling it by $0.5000$. The offset must always enter on the scale of the link function: $\ln(e_i)$.
[!WARNING] Trap 2: Zero Exposure Policies Causing Numerical Crashes In policy databases, cancelled or null-term policies frequently have earned exposure $e_i = 0$. Because $\ln(0) = -\infty$, fitting a GLM with zero-exposure records causes numerical overflow and crashes the estimation algorithm. All records with $e_i \le 0$ must be identified and removed during data preparation.
[!WARNING] Trap 3: Modeling Frequency Without Weights Fitting a GLM to empirical frequency $Y_i / e_i$ without specifying
weights = exposuretreats a 1-day policy ($e = 0.0027$) with 1 claim (empirical frequency = $365.0$) as equally credible to a 100-vehicle fleet policy ($e = 100.0$) with 1 claim (empirical frequency = $0.01$). Prior weights equal to exposure are essential to reflect the precision of each observation.
An actuarial analyst is setting up a GLM in R to model commercial auto liability claim counts across a fleet portfolio. Which model formula correctly specifies claim frequency per earned vehicle-year?
Why are the two modeling specifications—(1) raw claim counts Y_i with offset ln(e_i) and (2) empirical frequency Y_i / e_i with prior weights e_i—statistically equivalent under maximum likelihood estimation?
An actuary fits an unconstrained regression where ln(exposure) is included as a regular covariate rather than a constrained offset, resulting in an estimated exposure coefficient of 0.85. What is the practical consequence if this model is deployed in a rating engine?