Learn R Programming

LEdecomp (version 1.0.4)

lopez_ruzicka: Lopez-Ruzicka decomposition

Description

Implements the decomposition of life expectancy proposed by Lopez and Ruzicka, as described in Ponnapalli (2005). This method expresses the difference in life expectancy between two mortality schedules in terms of an exclusive effect and an interaction effect, using life table quantities.

Let \(e_x^i\) denote remaining life expectancy at age \(x\) for population \(i\), and \(l_x^i\) the number of survivors to age \(x\). Then:

  • Exclusive effect: $$ \frac{l_x^1}{l_x^2} \left[ l_x^2 (e_x^2 - e_x^1) - l_{x+n}^2 (e_{x+n}^2 - e_{x+n}^1) \right] $$

  • Interaction effect: $$ (e_{x+n}^2 - e_{x+n}^1) \cdot \left[ \frac{l_x^1 \cdot l_{x+n}^2}{l_x^2} - l_{x+n}^1 \right] $$

The total contribution to life expectancy difference in age group \(x\) is the sum of the exclusive and interaction effects.

Usage

lopez_ruzicka(
  mx1,
  mx2,
  age = (1:length(mx1)) - 1,
  nx = rep(1, length(mx1)),
  sex1 = "t",
  sex2 = sex1,
  closeout = TRUE
)

Value

Numeric vector of contributions by age group that sum to the total difference in life expectancy between the two mortality schedules.

Arguments

mx1

numeric vector of the mortality rates (central death rates) for population 1

mx2

numeric vector of the mortality rates (central death rates) for population 2

age

integer vector of the lower bound of each age group (currently only single ages supported)

nx

integer vector of age intervals, default 1.

sex1

character either the sex for population 1: Male ("m"), Female ("f"), or Total ("t")

sex2

character either the sex for population 2: Male ("m"), Female ("f"), or Total ("t") assumed same as sex1 unless otherwise specified.

closeout

logical. Default TRUE. Shall we use the HMD Method Protocol to close out the ax and qx values? See details.

Details

This method produces numerically identical results to arriaga().

References

Ponnapalli2005LEdecomp

See Also

arriaga, chandrasekaran_III, lopez_ruzicka_sym

Examples

Run this code
a <- 0.001
b <- 0.07
x <- 0:100
mx1 <- a * exp(x * b)
mx2 <- a/2 * exp(x * b)
cc <- lopez_ruzicka(mx1, mx2, age = x)
sum(cc)

Run the code above in your browser using DataLab