Girosi King 2007 - Lee-Carter Model Estimation and Forecasting
Summary
Lee-Carter models log mortality . With identification constraints and (Girosi-King convention; Lee-Carter use ), is the time average and come from the first singular vectors of the centred matrix. The index is forecast as a random walk with drift, so forecasts are a straight line through the first and last .
Overview
For one country, is log mortality in age group and year . The model is a rank-one product, a special case of log-linear contingency-table models with independence of age and time effects.
Main Content
Lee-Carter model (Eqs. 1-3)
Non-unique: invariant to and . Constraints and imply (time average). Centred model uses parameters for cells. Interpretation: is the sensitivity of age group to the index; independence assumption = no agetime interaction (the age shape is constant over time).
Estimation by SVD (Sec. 1.2)
Maximum likelihood under Gaussian errors is solved by the SVD : is the first left singular vector (unit length) and . Equivalently is the leading eigenvector of . Likelihood has many equivalent maxima, so SVD avoids optimiser trouble. Lee and Carter also propose a second-stage re-estimation of (see Girosi King 2007 - Second-Stage Reestimation and Wilmoth Estimators).
Forecast model for the index (Eqs. 4-9)
, . MLE of the drift is (depends only on first and last values), . Forecast: , conditional SE grows as . Point forecast of log mortality: , linear in (Eq. 8). Example: forecast for 2030 from data 1950-2000: .
Other ARIMA models for are possible, but random walk with drift “has been used almost exclusively”. Lee and Miller (2001) note the evidence is against constant and recommend starting from 1950 (Tuljapurkar, Li and Boe 2000); Booth, Maindonald and Smith (2002) show this fails in some countries; Carter and Prskawetz (2000) extend to structural shifts.
Examples
Rank-1 fit on synthetic data
Setup: age groups, years, truth , falling linearly from 4 to -4 plus noise. Solution: centre by age, SVD, take the first singular pair. Result: the first component explains 97% of centred variance; forecast mean profile .
import numpy as np
def lee_carter(m): # m: A x T log-mortality
mbar = m.mean(1); mt = m - mbar[:, None]
U, S, Vt = np.linalg.svd(mt, full_matrices=False)
beta = U[:, 0] * np.sign(U[:, 0].sum()); g = beta @ mt
theta = (g[-1] - g[0]) / (m.shape[1] - 1)
return mbar, beta, g, theta, S[0]**2 / (S**2).sum()
def forecast(mbar, beta, g, theta, h): return mbar + beta * (g[-1] + h * theta)PyMC-style Bayesian version (untested). E111 replaces the Gaussian-on-log-rate with counts: , a random walk with drift, zero-sum identification on and unit-norm or simplex constraint on (the E111 text notes an unidentified level shown failing). This follows Wilmoth’s Poisson/MLE suggestion (Girosi King 2007 - Second-Stage Reestimation and Wilmoth Estimators).
Connections
Girosi King 2007 - Lee-Carter as a Random Walk with Drift, Factor Analysis and PPCA, Concept Note - Abridged Life Tables Years of Life Lost and the Counterfactual Path.
See Also
Girosi King 2007 - Understanding the Lee-Carter Method - Overview