CalcLifeHist {paramDemo}R Documentation

Calculating life history variables from parametric models of age-specific demographic rates.

Description

CalcLifeHist uses parametric models of survival and fertility to calculate age-specific demographic rates, stable age structure, reproductive values, sensitivity and elasticities of the stable population growth rate to demographic rates, as well as different life history variables such as generation time or population entropy.

Usage

CalcLifeHist(theta = NULL, beta = NULL, dx = NULL,
             model = "GO", shape = "simple",
             modelFert = "quadratic", ageMatur = 0, 
             maxAge = NULL, lambdaMethod = "matrix")

Arguments

theta

Numerical vector of age-specific mortality parameters (see details).

beta

Numerical vector of age-specific fertility parameters (see details).

dx

Numerical value for the age-interval increments, default is 1.

model

Mortality model, options are “EX” = exponential (i.e., constant mortality with age), “GO” = Gompertz (default), “WE” = Weibull, or “LO” = logistic.

shape

The overall shape of the mortality model. Values are: “simple” = no extra parameters added; “Makeham” = a constant parameter is added to the mortality; and “bathtub” = a Gompertz declining mortality for early ages and a constant parameter are added to the mortality model (see details).

modelFert

Age-specific fertility model. Options are “quadratic” (default), “PeristeraKostaki”, “ColcheroMuller”, “Hadwiger”, “gamma”, “beta”, “skewNormal”, “gammaMixture”, “HadwigerMixture”, “skewSymmetric”, “skewLogistic” (see details)

ageMatur

Numerical value for the age at maturity.

maxAge

Numerical value for the maximum age. If NULL (default), it is calculated from the survival (see details).

lambdaMethod

Character string specifying the method to calculate the intrinsic population growth rate. Values are “matrix” for methods based on population projection matrices, or “Lotka” for numerical approximation of the root of the Lotka equation (see details)

Details

1) Age-specific mortality and survival models:

The function CalcDemo uses parametric functions to calculate age-specific survival, defined as the probability of surviving to a given age. The function follows the conventions from package BaSTA (Colchero and Clark 2012, Colchero et al. 2012, Colchero et al. 2021). The mortality function describes how the risk of mortality changes with age, and is defined as

\mu(x | \theta) = \lim_{\Delta x \rightarrow 0} \frac{\Pr[x < X < x + \Delta x | X > x]}{\Delta x},

where X is a random variable for ages at death, x \geq 0 are ages and \theta is the vector of mortality parameters. From the mortality function, the survival function is then given by

S(x | \bm{\theta}) = \exp[-\int_0^x \mu(t | \bm{\theta}) dt].

1.1)Argument model:

The model argument allows the user to choose between four basic mortality functions, namely

(a) model = EX”: The exponential model (Cox and Oakes 1974), with constant mortality with age, specified as

\mu_b(x | \bm{\theta}) = b,

where b > 0, with survival

S_b(x | \bm{\theta}) = \exp[-b x].

(b) model = GO”: The Gompertz mortality model (Gompertz 1925, Pletcher 1999), calculated as

\mu_b(x | \bm{\theta}) = \exp(b_0 + b_1 x),

where -\infty < b_0, b_1 < \infty, with survival

S_b(x | \bm{\theta}) = \exp\left[\frac{e^{b_0}}{b_1}\left(1 - e^{b_1 x}\right)\right].

(c) model = WE”: The Weibull mortality model (Pinder III et al. 1978) calculated as

\mu_b(x | \bm{\theta}) = b_0 b_1^{b_0} x^{b_0 -1},

where b_0, b_1 > 0, with survival

S_b(x | \bm{\theta}) = \exp\left[-(b_1 x)^{b_0}\right].

(d) model = LO”: The logistic mortality model (Pletcher 1999), calculated as

\mu_b(x | \bm{\theta}) = \frac{\exp(b_0 + b_1 x)}{1 + b_2 \frac{e^{b_0}}{b_1} \left(e^{b_1 x}-1\right)},

where b_0, b_1, b_2 > 0, with survival

S_b(x | \bm{\theta}) = \left[1 + b_2 \frac{e^{b_0}}{b_1} \left(e^{b_1 x} - 1\right)\right]^{-1 / b_2}.

1.2)Argument shape:

The shape argument allows the user to extend these models in order to explore more complex mortality shapes.

(a) shape = simple”: (default) Leaves the model as defined above, with mortality given by

\mu(x | \bm{\theta}) = \mu_b(x | \bm{\theta})

and survival

S(x | \bm{\theta}) = S_b(x | \bm{\theta}.

(b) shape = Makeham”: A constant is added to the mortality, such that the mortality is given by

\mu(x | \bm{\theta}) = c + \mu_b(x | \bm{\theta}_1),

where \bm{\theta} = [c, \bm{\theta}_1], and with survival

S(x | \bm{\theta}) = e^{-cx} S_b(x | \bm{\theta}_1)

The most common models with this shape is the Gompertz-Makeham model (Gompertz 1825, Makeham 1866).

(c) shape = bathtub”: produces a concave shapes in mortality by adding a declining Gompertz term and a constant parameter to the basic mortality model, where the mortality function is

\mu(x | \bm{\theta}) = \exp(a_0 - a_1 x) + c + \mu_b(x | \bm{\theta}_1),

where a_0 \in \mathbb{R}, a_1, c \geq 0 and \bm{\theta}_1 \subset \bm{\theta} are specified based on argument model, and with survival

S(x | \theta) = \exp\left[\frac{e^{a_0}}{a_1}\left(e^{a_1 x} - 1\right)-cx\right] S_b(x | \theta_1).

The most widely use “bathtub” shaped model is the Siler mortality model (Siler 1979), which provides considerably good fits to mammalian data. The arguments for the Siler model are:

CalcLifeHist(..., model = "GO", shape = "bathtub", ...)

2) Specifying theta parameters:

Argument theta requires a numerical vector of parameters. For instance, for a Gompertz model with simple shape and with parameter vector \bm{\theta}^{\top} = [b_0, b_1] where b_0 = -5 and b_1 = 0.1, the argument should be specified as

CalcDemo(theta = c(b0 = -5, b1 = 0.1), ...)

Note that in this example the parameter names are specified directly, this is required when checkTheta = FALSE. Although assigning the names to each parameter is not necessary when checkTheta = TRUE, it is advisable to ensure that the right values are assigned to the right parameter.

If argument checkTheta is set to TRUE, then the vector of theta parameters is verified for consistency with the requirements of the model and shape selected.

3) Age-specific fertility models:

The age-specific fertility models correspond to the expected number of offspring produced by adults of a given age. Therefore, for a random variable Y_{x} with realizations y_x for the number of offspring produced by adults of age x, we have that E(Y_x) = g(x | \bm{\beta}), where g: \mathbb{R}_{\ge 0} \rightarrow \mathbb{R}_{\ge 0} is a non-negative smooth fertility function and \bm{\beta} is a vector of parameters to be estimated. The functional forms of function g fall in two main categories, namely polynomial and distributional models.

3.a) Polynomial:

Of the models available in paramDemo, the “quadratic”, “PeristeraKostaki” (Peristera and Kostaki 2007), and “ColcheroMuller” (Colchero et al. 2021, Muller et al. 2020) fall within the polynomial category. Both, the “PeristeraKostaki” and “ColcheroMuller” are non-symmetric around the age at maximum fertility.

3.b) Distributional:

The distributional models are of the form

g(x | \bm{\beta}) = R f(x | \bm{\beta}_1),

where f: \mathbb{R}_{\ge 0} \rightarrow \mathbb{R}_{\ge 0} is a probability density function, R > 0 is a parameter for the total fertility rate, and \bm{\beta}_1 \subset \bm{\beta} is a vector of parameters. The “Hadwiger” (Hadwiger 1940), “gamma” (Hoem et al. 1981), “beta” (Hoem et al. 1981), “skewNormal” (Mazzuco and Scarpa 2011, 2015), “gammaMixture” (Hoem et al. 1981), “HadwigerMixture” (Chandola et al. 1991), “skewSymmetric” (Mazzuco and Scarpa 2011, 2015), and “skewLogistic” (Asili et al. 2014) all fall in this category. Notably, the “gammaMixture”, “HadwigerMixture”, “skewSymmetric”, “skewLogistic” are appropriate when fertility might be bimodal (Hoem et al. 1981, Chandola et al. 1999, Mazzuco and Scarpa 2011, 2015, Asili et al. 2014).

4) Specifiying beta parameters:

Argument beta requires a vector of parameters. For instance, for a quadratic model with parameter vector \bm{\beta}^{\top} = [b_0, b_1, b_2] where b_0 = 0.5, b_1 = 0.01 and b_2 = 10, the argument should be specified as

CalcLifeHist(..., beta = c(b0 = 0.5, b1 = 0.01, b2 = 10), ...)

Note that in this example the parameter names are specified directly, this is required when checkBeta = FALSE. Although assigning the names to each parameter is not necessary when checkBeta = TRUE, it is advisable to ensure that the right values are assigned to the right parameter.

If argument checkBeta is set to TRUE, then the vector of beta parameters is verified for consistency with the requirements of the fertility model selected.

5) Methods to estimate lambda, r, stable age structure and reproductive values:

If argument lambdaMethod is set to “matrix”, the function calculates the assymptotic population growth rate \lambda as the dominant eigen-value of the resulting population projection matrix \bm{A} (Caswell and Wegner 1978, Kroon et al. 1986, Caswell 2001). The intrinsing population growth rate is then r = \log \lambda, while the stable age-structure, \bm{\omega}^{\top}=[\omega_0, \omega_1, \dots, \omega_\tau], where \tau is the maximum age of the population, is given by the corresponding right eigen vector, standardized by its norm. The reproductive value is the corresponding left eigen vector, \bm{\nu}^{\top} = [\nu_0, \nu_1, \dots, \nu_\tau], standardized such that \nu_0 = 1.

If argument lambdaMethod is set to “Lotka”, the function estimates the intrinsic population growth rate, r, by finding the real root of Lotka' (1913) equation, given by

\int_0^\tau e^{-rx} S(x) m(x) dx = 1.

The stable population structure is then calculated as

\omega_x = \frac{e^{-rx} S(x)}{\sum_{k=0}^\tau e^{-rk} S(k)},

while the reproductive value is given by

\nu_x = \frac{\int_x^\tau{e^{-r(k - x)}} S(k) m(k) dk}{S(x)}.

The function then calculates the sensitivities of lambda to age-specific survival as

s_{p,x} = \frac{\nu_{x}\omega_{x+1}}{<\bm{\nu}\bm{\omega}>}, \quad \text{for } x<\tau

where the denominator is the inner product, and the sensitivity of lambda to the reproductive value at x is given by

s_{m,x} = \frac{\nu_{1}\omega_{x+1}}{<\bm{\nu}\bm{\omega}>}, \quad \text{for } x<\tau

Elasticities are calculated as

e_{p,x} = \frac{p_x}{\lambda} s_{p,x} \text{ and } e_{m,x} = \frac{m_x}{\lambda} s_{m,x}.

6) Calculation of life history variables

The first life history variables are the intrinsic population growth rate r and the stable population growth rate \lambda = e^r, described in the previous section.

The function also provides a number of life history variables described by Tuljapurkar et al. (2009). For instance, it provides the generation time for the stable population as

T_s = \int_0^{\tau} x e^{-rx} S(x) m(x) dx,

as well as the cohort generation time, given by

T_c = \frac{\int_0^{\tau} x S(x) m(x) dx}{R_0},

where R_0 is the net reproductive rate, given by

R_0 = \int_0^{\tau} S(x) m(x) dx.

It provides the demographic dispersion given by

\sigma^2_d = \frac{\int_0^\tau (x - T_c)^2 S(x) m(x) dx}{R_0}

which measures the dispersion of reproduction across ages.

Finally, it calculates the population entropy as proposed by Demetrius (1974), given by

H = - \frac{\int_0^{\tau} \rho(x) \log \rho(x) dx}{T_s}

where \rho(x) = e^{-r x} S(x) m(x).

Value

The function produces an object of class “PDlifeHist”, which consists of a list with the following elements:

demoTab

A data frame with the resulting individual ages, the survival S(x), the age-specific survival probability p_x, the age-specific mortality probability q_x, the age-specific fertility rate m_x, the stable age structure omega_x, the age specific reproductive value nu_x, and the sensitivities and elasticities.

lifeHist

A data frame with the life history variables described in details, including a description.

settings

A list with the information of the models and parameters as provided by the user.

Author(s)

Fernando Colchero fernando_colchero@eva.mpg.de

References

Asili S., Rezaei S., Najjar, L. (2014) Using Skew-Logistic Probability Density Function as a Model for Age-Specific Fertility Rate Pattern. BioMed Research International, 2014, 790294.

Azzalini, A. (1985) A Class of Distributions Which Includes the Normal Ones. Scandinavian Journal of Statistics, 2, 171-178.

Caswell, H. & Werner, P. A. (1978) Transient Behavior and Life History Analysis of Teasel (Dipsacus Sylvestris Huds.). Ecology 59, 53-66.

Caswell, H. (2001) Matrix Population Models: Construction, Analysis and Interpretation. (Sinauer Associates).

Chandola, T., Coleman D.A., Hiorns R.W. (1999) Recent European fertility patterns: Fitting curves to ‘distorted’ distributions. Population Studies, 53, 317-329.

Colchero, F. (In prep.) Inference on age-specific fertility in ecology and evolution. Learning from other disciplines and improving the state of the art.

Colchero, F., Eckardt, W., Stoinski, T. (2021) Evidence of demographic buffering in an endangered great ape: Social buffering on immature survival and the role of refined sex-age classes on population growth rate. Journal of Animal Ecology, 90, 1701-1713.

Colchero, F., J.S. Clark (2012) Bayesian inference on age-specific survival from capture-recapture data for censored and truncated data. Journal of Animal Ecology. 81, 139-149.

Colchero, F., O.R. Jones, M. Rebke. (2012) BaSTA: an R package for Bayesian estimation of age-specific survival from incomplete mark-recapture/recovery data with covariates. Method in Ecology and Evolution. 3, 466-470.

Colchero, F., et al. (2021) The long lives of primates and the “invariant rate of aging” hypothesis. Nature Communications 12:3666

Cox, D. R., and Oakes D. (1984) Analysis of Survival Data. Chapman and Hall, London.

Demetrius, L. (1974) Demographic parameters and natural selection. PNAS 71, 4645-4647.

Gompertz, B. (1825) On the nature of the function expressive of the law of human mortality, and on a new mode of determining the value of life contingencies. Philosophical Transactions of the Royal Society of London, 115, 513-583.

Hadwiger, H. (1940) Eine analytische Reproduktionssunktion fur biologische Gesamtheiten. Scandinavian Actuarial Journal, 1940, 101-113.

Hoem, J.M., Madien, D., Nielsen, J.L., Ohlsen, E.M., Hansen, H.O., Rennermalm, B. (1981) Experiments in modelling recent Danish fertility curves. Demography, 18, 231-244.

Keyfitz, N., Caswell, H. (2005) Applied Mathematical Demography. (Springer-Verlag).

Kroon, H. de, Plaisier, A., Groenendael, J. van & Ecology, H. C. (1986) Elasticity: the relative contribution of demographic parameters to population growth rate. Ecology 67, 1427-1431.

Lotka, A. J. (1913) A natural population norm. II. Journal of the Washington Academy of Sciences 3, 289-293.

Makeham, W. M. (1866) On the law of mortality Journal of the Institute of Actuaries 13, 1-34.

Mazzuco, S., Scarpa, B. (2011) Fitting age-specific fertility rates by a skew- symmetric probability density function. (Working paper 10), University of Padua.

Mazzuco, S., Scarpa, B. (2015) Fitting age-specific fertility rates by a flexible generalized skew normal probability density function. Journal of the Royal Statistical Society: Series A, 178, 187-203.

Muller M. N., Blurton Jones N. G, Colchero F., Thompson M. E., Enigk D. K. (2020) Sexual dimorphism in chimpanzee (Pan troglodytes schweinfurthii) and human age-specific fertility. Journal of human evolution, 144, 102795.

Peristera P., Kostaki A. (2007) Modeling fertility in modern populations. Demographic Research, 16, 141-194.

Pinder III, J.E., Wiener, J.G. and Smith, M.H. (1978) The Weibull distribution: a new method of summarizing survivorship data. Ecology, 59, 175-179.

Shkolnikov, V., Andreev, E., Begun, A. Z. (2003) Gini coefficient as a life table function. Demographic Research 8, 305-358.

Siler W. A (1979) competing-risk model for animal mortality. Ecology 60, 750-757.

See Also

CalcDemo to calculate parametric demographic functions.

Examples

# Calculate life histories on the defalult models:
test <- CalcLifeHist(theta = c(b0 = -3, b1 = 0.1), 
                     beta = c(b0 = 1, b1 = 0.01, b2 = 5),
                     ageMatur = 2)
                     
# Print results:
test

# Plot results:
plot(test, type = "all")

[Package paramDemo version 1.0.1 Index]