forecast.fitLCmulti {CvmortalityMult} | R Documentation |
Function to forecast multi-population mortality model
Description
R function for forecasting additive and multiplicative multi-population mortality model developed by: Debon et al (2011) and Russolillo et al. (2011), respectively. This model follows the structure of the well-known Lee-Carter model (Lee and Carter, 1992) but including an additive or multiplicative parameter to capture the behavior of each population considered. This parameter seeks to capture the individual behavior of every population considered. It should be mentioned that this function is developed for fitting several populations. However, in case you only consider one population, the function will fit the single population version of the Lee-Carter model, the classical one.
Usage
## S3 method for class 'fitLCmulti'
forecast(
object,
nahead,
ktmethod = c("Arimapdq", "arima010"),
kt_include.cte = TRUE,
...
)
Arguments
object |
object |
nahead |
number of periods ahead to forecast. |
ktmethod |
method used to forecast the value of |
kt_include.cte |
if you want that |
... |
other arguments for |
Value
A list with class "forLCmulti"
including different components of the forecasting process:
-
ax
parameter that captures the average shape of the mortality curve in all considered populations. -
bx
parameter that explains the age effect x with respect to the general trendkt
in the mortality rates of all considered populations. -
arimakt
the arima selected for thekt
time series. -
kt.fitted
obtained values for the tendency behavior captured bykt
. -
kt.fut
projected values ofkt
for the nahead periods ahead. -
kt.futintervals
arima selected and future values ofkt
with the different intervals, lower and upper, 80\ -
Ii
parameter that captures the differences in the pattern of mortality in any region i with respect to Region 1. -
ktmethod
method selected to forecast the value ofkt
Arima(p,d,q) or ARIMA(0,1,0); c("Arimapdq
", "arima010
"). -
kt_include.cte
the decision regarding the inclusion of constant in thekt
arima process. -
formula
additive multi-population mortality formula used to fit the mortality rates. -
model
provided the model selected in every case. -
qxt.real
real mortality rates. -
qxt.fitted
fitted mortality rates using the additive multi-population mortality model. -
logit.qxt.fitted
fitted mortality rates in logit way estimated with the additive multi-population mortality model. -
qxt.future
future mortality rates estimated with the additive multi-population mortality model. -
logit.qxt.future
future mortality rates in logit way estimated with the additive multi-population mortality model. -
nPop
provided number of populations to fit the periods.
References
Debon, A., Montes, F., & Martinez-Ruiz, F. (2011). Statistical methods to compare mortality for a group with non-divergent populations: an application to Spanish regions. European Actuarial Journal, 1, 291-308.
Lee, R.D. & Carter, L.R. (1992). Modeling and forecasting US mortality. Journal of the American Statistical Association, 87(419), 659–671.
Russolillo, M., Giordano, G., & Haberman, S. (2011). Extending the Lee–Carter model: a three-way decomposition. Scandinavian Actuarial Journal, 2011(2), 96-117.
See Also
fitLCmulti
,
plot.fitLCmulti
, plot.forLCmulti
,
multipopulation_cv
, multipopulation_loocv
,
iarima
Examples
#The example takes more than 5 seconds because it includes
#several fitting and forecasting process and hence all
#the process is included in donttest
#First, we present the data that we are going to use
SpainRegions
ages <- c(0, 1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90)
library(gnm)
library(forecast)
#ADDITIVE MULTI-POPULATION MORTALITY MODEL
#In the case, the user wants to fit the additive multi-population mortality model
additive_Spainmales <- fitLCmulti(model = "additive",
qxt = SpainRegions$qx_male,
periods = c(1991:2020),
ages = c(ages),
nPop = 18,
lxt = SpainRegions$lx_male)
additive_Spainmales
#If the user does not provide the model inside the function fitLCmult()
#the multi-population mortality model applied will be additive one.
#Once, we have fit the data, it is possible to see the ax, bx, kt, and Ii
#provided parameters for the fitting.
plot(additive_Spainmales)
#Once, we have fit the data, it is possible to forecast the multipopulation
#mortality model several years ahead, for example 10, as follows:
fut_additive_Spainmales <- forecast(object = additive_Spainmales, nahead = 10,
ktmethod = "Arimapdq", kt_include.cte = TRUE)
fut_additive_Spainmales
#Once the data have been adjusted, it is possible to display the fitted kt and
#its out-of-sample forecasting. In addition, the function shows
#the logit mortality adjusted in-sample and projected out-of-sample
#for the mean age of the data considered in all populations.
plot(fut_additive_Spainmales)
#MULTIPLICATIVE MULTI-POPULATION MORTALITY MODEL
#In the case, the user wants to fit the multiplicative multi-population mortality model
multiplicative_Spainmales <- fitLCmulti(model = "multiplicative",
qxt = SpainRegions$qx_male,
periods = c(1991:2020),
ages = c(ages),
nPop = 18,
lxt = SpainRegions$lx_male)
multiplicative_Spainmales
#Once, we have fit the data, it is possible to see the ax, bx, kt, and It
#provided parameters for the fitting.
plot(multiplicative_Spainmales)
#Once, we have fit the data, it is possible to forecast the multipopulation
#mortality model several years ahead, for example 10, as follows:
fut_multi_Spainmales <- forecast(object = multiplicative_Spainmales, nahead = 10,
ktmethod = "Arimapdq", kt_include.cte = TRUE)
fut_multi_Spainmales
#Once the data have been adjusted, it is possible to display the fitted kt and
#its out-of-sample forecasting. In addition, the function shows
#the logit mortality adjusted in-sample and projected out-of-sample
#for the mean age of the data considered in all populations.
plot(fut_multi_Spainmales)
#LEE-CARTER FOR SINGLE-POPULATION
#As we mentioned in the details of the function, if we only provide the data
#from one-population the function fitLCmulti()
#will fit the Lee-Carter model for single populations.
LC_Spainmales <- fitLCmulti(qxt = SpainNat$qx_male,
periods = c(1991:2020),
ages = ages,
nPop = 1)
LC_Spainmales
#Once, we have fit the data, it is possible to see the ax, bx, and kt
#parameters provided for the single version of the LC.
plot(LC_Spainmales)
#Once, we have fit the data, it is possible to forecast the multipopulation
#mortality model several years ahead, for example 10, as follows:
fut_LC_Spainmales <- forecast(object = LC_Spainmales, nahead = 10,
ktmethod = "Arimapdq", kt_include.cte = TRUE)
#Once the data have been adjusted, it is possible to display the fitted kt and
#its out-of-sample forecasting. In addition, the function shows
#the logit mortality adjusted in-sample and projected out-of-sample
#for the mean age of the data considered in all populations.
plot(fut_LC_Spainmales)