Risk Modelling and Survival Analysis · Mortality projection
Lee-Carter Model: Fitting, Constraints and Forecasting
Updated 11 October 2026 · Fact-checked
The Lee-Carter model says log m(x,t) = a_x + b_x k_t + error. a_x is the average age pattern, k_t is a time index of mortality level, and b_x is how far each age responds to k_t. Fit by SVD under Σb_x = 1 and Σk_t = 0, then forecast k_t as a random walk with drift.
Understand Lee-Carter Model
Mortality rates change over time, and an actuary must project them to price annuities and value pension liabilities. The Lee-Carter model does this with very few parameters. It works on the logarithm of the central rate of mortality m(x,t) for age x in year t.
The model is log m(x,t) = a_x + b_x k_t + ε(x,t). Read each part in turn:
- a_x is the average of log m(x,t) over time. It gives the shape of mortality across ages.
- k_t is the period index. It is one number per year. A falling k_t means mortality is improving.
- b_x is the age sensitivity. A larger b_x means that age improves faster when k_t changes.
- ε(x,t) is the error, assumed to have constant variance across ages and years.
The model is not identifiable as written. You can multiply every b_x by c and divide every k_t by c and get the same fit. You can also shift k_t by a constant and adjust a_x. So you impose two constraints: Σ b_x = 1 and Σ k_t = 0. With these, a_x is simply the average of log m(x,t) over the T years.
To fit, subtract a_x from each log rate to get a matrix of residual log rates. Apply singular value decomposition (SVD) to this matrix. The first singular value and its vectors give the best rank-one fit, which is b_x k_t. Then rescale so the constraints hold. An alternative is to fit by maximum likelihood, assuming deaths are Poisson with mean E(x,t) m(x,t).
To forecast, treat k_t as a time series. The usual choice is a random walk with drift: k_t = k_{t-1} + d + e_t, where e_t are independent N(0, σ²). Then you project k forward and substitute into the model to get future mortality rates. Its main weaknesses are that b_x never changes, there is no cohort effect, and the forecast improvement rates are constant for ever.
Key rules to remember
- Lee-Carter model
- log m(x,t) = a_x + b_x k_t + ε(x,t)
- m(x,t) is the central rate of mortality at age x in year t. ε has mean 0 and constant variance.
- Constraints
- Σ_x b_x = 1 and Σ_t k_t = 0
- Needed so the parameters are identifiable. Other constraint pairs exist, so use the ones the question states.
- Estimate of a_x
- â_x = (1 ÷ T) Σ_t log m̂(x,t)
- Holds under Σ k_t = 0. It is the average log rate at age x over the T years.
- SVD step
- Z(x,t) = log m̂(x,t) − â_x ≈ s₁ u₁(x) v₁(t)
- u₁ and v₁ are the first left and right singular vectors, s₁ is the largest singular value.
- Rescaling after SVD
- b̂_x = u₁(x) ÷ Σ_x u₁(x); k̂_t = s₁ v₁(t) × Σ_x u₁(x)
- The product b̂_x k̂_t is unchanged. Check Σ k̂_t = 0, which holds because each row of Z averages to 0.
- Random walk with drift for k_t
- k_t = k_{t-1} + d + e_t, e_t ~ N(0, σ²)
- d is the drift. A negative d means improving mortality.
- Drift estimate
- d̂ = (k_T − k_1) ÷ (T − 1)
- This is the mean of the T − 1 annual differences. Estimate σ² by the sample variance of those differences.
- Point forecast and variance
- E[k_{T+h}] = k_T + h d̂; Var(k_{T+h}) = h σ²
- The variance ignores uncertainty in d̂, a_x and b_x. Say so if asked.
- Forecast mortality
- log m(x, T+h) = a_x + b_x k_{T+h}
- Take the exponential to get the rate. This gives a central estimate on the log scale.
- Number of free parameters
- 2A + T − 2
- For A ages and T years: A values of a_x, A − 1 of b_x and T − 1 of k_t, after the two constraints.
How to solve Lee-Carter Model questions
Use this method for any Lee-Carter question, whether it asks you to describe, fit, forecast or criticise the model.
- 1Write the model: log m(x,t) = a_x + b_x k_t + ε(x,t). Define x, t, m(x,t) and each parameter in words.
- 2State the constraints Σ b_x = 1 and Σ k_t = 0, and say why they are needed.
- 3Estimate a_x as the average of the log rates over time for each age. Subtract it to form the residual matrix.
- 4If asked how to fit, apply SVD to the residual matrix. Take the first singular value and vectors, then rescale so Σ b_x = 1. Mention the Poisson maximum likelihood alternative.
- 5Model k_t as a random walk with drift. Estimate d as (k_T − k_1) ÷ (T − 1) and σ² from the differences.
- 6Forecast k_{T+h} = k_T + h d. Put it into a_x + b_x k_{T+h}, then take the exponential to get m(x, T+h).
- 7If asked for uncertainty, use Var(k_{T+h}) = h σ² to give a confidence interval for k, and say what it leaves out.
- 8For discussion parts, give advantages (few parameters, simple, transparent) and limitations (no cohort effect, fixed b_x, constant error variance, ignored parameter uncertainty), each with a one-line reason.
Quickest way: Fast route for Lee-Carter calculations
When to use it: Use this when the question gives you fitted a_x, b_x and k_t and asks for a forecast rate, under time pressure.
- Compute d̂ = (last k − first k) ÷ (number of years − 1).
- Compute k_{T+h} = k_T + h d̂.
- Compute a_x + b_x × k_{T+h} for the given age.
- Take e to that power. Check the answer is a small positive rate, usually well below 1.
- For an interval on k, use k_{T+h} ± 1.96 √(h σ²). Write the result in a short line with the assumptions.
Common mistakes in Lee-Carter Model
Forgetting the constraints, or stating them wrongly as Σ b_x = 0 or Σ k_t = 1.
Both constraints involve a sum, so the two get mixed up.
Fix: Remember it as: b sums to 1 (shares of improvement), k sums to 0 (centred index). Then a_x is the plain average of the log rates.
Estimating a_x from the raw rates m(x,t) instead of the log rates.
Students average the rates because it feels natural.
Fix: The model is on the log scale. Average log m(x,t) over t, and only exponentiate at the end.
Computing the drift as the average of k_t values, or dividing by T instead of T − 1.
Confusion between the level of k and its annual change.
Fix: d̂ = (k_T − k_1) ÷ (T − 1). There are T − 1 annual changes between T values.
Forecasting m(x,t) directly, or forgetting to exponentiate at the end.
The log scale gets lost during the calculation.
Fix: Forecast k first, plug into a_x + b_x k, then take the exponential. A forecast of −4.78 is not a mortality rate.
Saying the model captures cohort effects, or that b_x changes over time.
Mixing it up with extensions of the model.
Fix: The basic Lee-Carter model has one period factor and fixed b_x. A cohort term comes from extended models such as Renshaw-Haberman. The age-period-cohort and CBD models are covered separately.
Treating the confidence interval for k_{T+h} as the full uncertainty of the forecast.
The variance formula h σ² looks complete.
Fix: It covers only the future random error in k. Say that it ignores error in estimating d, a_x and b_x, and model risk.
Worked examples
Example 1
A Lee-Carter model has been fitted to T = 5 years. The estimated period index is k = 2, 1, 0, −1, −2 for years 1 to 5. For age 60, â_60 = −4.5 and b̂_60 = 0.04. (a) Estimate the drift d. (b) Forecast k five years beyond year 5. (c) Forecast m(60, year 10).
Show the solution
- (a) Use d̂ = (k_T − k_1) ÷ (T − 1) = (−2 − 2) ÷ 4 = −1.
- (b) k_{T+5} = k_T + 5 d̂ = −2 + 5 × (−1) = −7.
- (c) log m(60, year 10) = a_60 + b_60 × k = −4.5 + 0.04 × (−7) = −4.5 − 0.28 = −4.78.
- m(60, year 10) = e^(−4.78) = e^(−5) × e^(0.22) = 0.006738 × 1.2461 ≈ 0.00840.
Answer: d̂ = −1; k forecast = −7; m(60, year 10) ≈ 0.00840 (about 0.84%).
Example 2
A Lee-Carter model is fitted to A = 4 ages and T = 4 years. SVD gives b' = 0.05, 0.10, 0.15, 0.20 and k' = 30, 10, −10, −30. (a) Rescale to satisfy Σ b_x = 1 and check Σ k_t = 0. (b) State the number of free parameters. (c) For age 70, the log rates over the four years are −4.2, −4.3, −4.5, −4.6. Find â_70.
Show the solution
- (a) Σ b' = 0.05 + 0.10 + 0.15 + 0.20 = 0.50. Divide each b' by 0.50 to get b = 0.1, 0.2, 0.3, 0.4, which sum to 1.
- Multiply each k' by 0.50 so the product b k is unchanged: k = 15, 5, −5, −15. Check: 0.05 × 30 = 1.5 and 0.1 × 15 = 1.5.
- Σ k = 15 + 5 − 5 − 15 = 0, so the second constraint holds.
- (b) Free parameters = 2A + T − 2 = 8 + 4 − 2 = 10. (A = 4 values of a_x, 3 of b_x, 3 of k_t.)
- (c) â_70 = average of the log rates = (−4.2 − 4.3 − 4.5 − 4.6) ÷ 4 = −17.6 ÷ 4 = −4.4.
Answer: b = 0.1, 0.2, 0.3, 0.4 and k = 15, 5, −5, −15; there are 10 free parameters; â_70 = −4.4.
Exam tips
- Always write the model and the two constraints at the start. Many marks go for stating them with the correct sums.
- In forecasting questions, show d̂, then k_{T+h}, then the log rate, then the exponential. Each step carries marks.
- For discussion questions, give at least three limitations and say why each matters, for example: no cohort effect, so cohort-driven improvement is missed.
- State your assumptions: errors are independent with constant variance, k_t follows a random walk with drift, and the drift continues unchanged.
- In the computer-based paper, show the method as well as the output: the matrix of log rates, the SVD step, the rescaling, and the forecast of k_t.
Practice questions from Mortality projection
- Lee-Carter k(t) is modelled as a random walk with drift: k(t+1) = k(t) + d + e(t), where e(t) is independent N(0, s²). Estimated d = -1.5 an…
- In the Lee-Carter model ln m(x,t) = a(x) + b(x)k(t), the period index k(t) is typically projected forward using which approach?
- A pension insurer projects mortality using a stochastic model and finds that the width of the prediction interval for the value of a portfol…
- An actuary uses a mortality reduction factor approach: q(x,t) = q(x,0) × [alpha(x) + (1 - alpha(x)) × (1 - f(x))^(t/n)]. With alpha(x) = 0.4…
- Which of the following is a recognised driver of past mortality improvement at older ages in developed countries that is most directly linke…
Lee-Carter Model: frequently asked questions
Why does the Lee-Carter model need constraints?
Without constraints, many sets of parameters give exactly the same fitted rates. For example, you can double every b_x and halve every k_t. The constraints Σ b_x = 1 and Σ k_t = 0 give one unique solution.
How does SVD give b_x and k_t?
You subtract a_x from the log rates to form a matrix. SVD finds the best rank-one approximation to it. The first left vector gives the age pattern and the first right vector gives the time pattern. You rescale so Σ b_x = 1.
Why use a random walk with drift for k_t?
The fitted k_t often falls roughly in a straight line over time, with random year-to-year changes. A random walk with drift captures both features. It is also easy to forecast and gives a simple variance of h σ² at h years ahead.
What are the main limitations of the Lee-Carter model?
It has no cohort effect and one period factor, and b_x is fixed over time. It assumes constant error variance on the log scale, although rates at old ages are more variable. It also forecasts constant long-run improvement and ignores parameter uncertainty in its basic form.