Extrapolate given mortality rates using the original Kannisto method.
A vector or matrix of mortality rates. If it is a matrix, rows correspond to age groups with rownames identifying the corresponding age as integers. By default five-years age groups are assigned to rows if rownames are not given.
A vector of integers identifying the ages to be used
for estimation. It should be a subset of rownames of
A vector of integers identifying the age groups for which mortality rates are to be projected. Change the defaults if 1-year age groups are used (see Example).
The function first estimates the original Kannisto parameters
by passing mortality rates for age groups
The estimated parameters are then passed to the projection function
kannisto.predict to extrapolate into ages
Lastly, the input mortality object is extended by results for the extrapolated ages.
proj.ages contains age groups that are included in
values for those age groups are overwritten.
A vector or matrix containing the input mortality object
extended by the extrapolated age groups.
Thatcher, A. R., Kannisto, V. and Vaupel, J. W. (1998). The Force of Mortality at Ages 80 to 120, volume 5 of Odense Monographs on Population Aging Series. Odense, Denmark: Odense University Press.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
data(mxM, package = "wpp2017") mx <- subset(mxM, name == "Burkina Faso")[,-(1:3)] rownames(mx) <- c(0,1, seq(5, 100, by=5)) mxnew <- kannisto(mx) ages <- as.integer(rownames(mxnew)) plot(ages, mxnew[,"2095-2100"], type="l", log="y", xlab="age", ylab="mx", col="red") lines(ages, mxnew[,"2010-2015"]) # Kannisto for 1-year age groups # derive toy 1-year mx using model life tables at e0 of 70 mx1y <- mlt(70, sex = "male", nx = 1) # Pretend we only observed mx for ages 0:100. # Use 90-99 for estimation and extend mx from 100 to 140 mx1ynew <- kannisto(mx1y[1:100, , drop = FALSE], est.ages = 90:99, proj.ages = 100:140) # Plot the new mx for old ages plot(80:140, mx1ynew[81:141], type = "l", xlab="age", ylab="mx", col="red") # Check how it compares to the original mx that was not used in the estimation lines(100:130, mx1y[101:nrow(mx1y)])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.