CBDS: CBD model

View source: R/CBDS.R

CBDSR Documentation

CBD model

Description

Fits and forecasts mortality rates using CBD model.

Usage

CBDS(
  x,
  M,
  curve = c("gompertz", "makeham", "perks", "weibull", "beard", "martinelle", "thatcher",
    "gompertz2", "makeham2", "perks2", "weibull2", "beard2", "martinelle2", "thatcher2"),
  h = 10,
  jumpoff = 1
)

Arguments

x

vector of ages.

M

matrix of mortality rates (rows as years and columns as ages).

curve

name of mortality curve for smoothing forecasted mortality rates (including gompertz, makeham, perks, weibull, beard, martinelle, thatcher, gompertz2, makeham2, perks2, weibull2, beard2, martinelle2, thatcher2, where first 7 curves' parameters are unconstrained and last 7 curves' parameters are generally restricted to be positive).

h

forecast horizon (default = 10).

jumpoff

if 1, forecasts are based on estimated parameters only; if 2, forecasts are anchored to observed mortality rates in final year (default = 1).

Details

The CBD (M5) model is specified as

ln(m_{x,t}) = \kappa_{1,t} + \kappa_{2,t} (x-\bar{x}) + \epsilon_{x,t}.

The model is estimated by regression and is forecasted by ARIMA applied to \kappa_{1,t} and \kappa_{2,t}. It is designed for ages 50-90.

Value

An object of class CBDS with associated S3 methods coef, forecast, plot, and residuals.

References

Cairns, A.J.G., Blake, D., and Dowd, K. (2006). A two-factor model for stochastic mortality with parameter uncertainty: Theory and calibration. Journal of Risk and Insurance, 73(4), 687-718.

Examples

x <- 60:89
k1 <- -2.97-0.0245*(0:29)
k2 <- 0.101+0.000345*(0:29)
set.seed(123)
M <- exp(matrix(k1,nrow=30,ncol=30,byrow=FALSE)+outer(k2,(x-mean(x)))+rnorm(900,0,0.035))
fit <- CBDS(x=x,M=M,curve="makeham",h=30,jumpoff=2)
coef(fit)
forecast::forecast(fit)
plot(fit)
residuals(fit)


demofit documentation built on April 9, 2026, 5:09 p.m.

Related to CBDS in demofit...