autoSmoothAPC {smoothAPC} | R Documentation |
Smooths demographic data using automatically estimated parameters and optionally taking into account period and cohort effects
Description
If period and cohort effects are taken into account (effects = TRUE) the method uses all available years and diagonals for estimation of the period and cohort effects.
Usage
autoSmoothAPC(data, effects = TRUE, cornerLength = 7,
affdDiagonals = NULL, affdYears = NULL, lower = head(c(0.01, 0.01, 0.01,
2, 0.001, 2, 0.001), 3 + effects * 4), upper = head(c(1.2, 1.8, 1.2, 12,
0.4, 12, 0.4), 3 + effects * 4), init = head(c(0.1, 0.1, 0.2, 4, 0.001, 4,
0.001), 3 + effects * 4), reltol = 0.001, parameters = NULL, trace = F,
control = list(nnzlmax = 1e+06, nsubmax = 2e+06, tmpmax = 2e+05),
weights = NULL)
Arguments
data |
Demographic data (log mortality) presented as a matrix. Row numbers represent ages and column numbers represet time. |
effects |
Controls if the cohort and period effects are taken into account. |
cornerLength |
Sets the smallest length of a diagonal to be considered for cohort effects. |
affdDiagonals |
Diagonals to be used for cohort effects. The first diagonal is at the bottom left corner of the data matrix (maximal age and minimal time in the data matrix). |
affdYears |
Years to be used for period effects. |
lower |
Lowest possible values for the optimization procedure. |
upper |
Highest possible values for the optimization procedure. |
init |
Initial values for the optimization procedure. |
reltol |
Relative tolerance parameter to be supplied to |
parameters |
Optional model parameters. If not provided, they are estimated. |
trace |
Controls if tracing is on. |
control |
The control data passed directly to |
weights |
Define how much every observation effect the resulting smooth surface.
The parameter must have same dimentions as |
Value
A list of four components: smooth surface, period effects, cohort effects and parameters used for smoothing (passed as a parameter or estimated).
Author(s)
Alexander Dokumentov
References
http://robjhyndman.com/publications/mortality-smoothing/
See Also
smoothAPC
and signifAutoSmoothAPC
. The latter might give slightly better performance.
Examples
library(demography)
m <- log(fr.mort$rate$female[1:30, 150:160])
plot(m)
sm <- autoSmoothAPC(m)
plot(sm)
plot(sm, "period")
plot(sm, "cohort")