Extrapolate to dimensions beyond the range of those which
exist in your data.table. Uses linear, rate of change, or uniform
extrapolation.
extrapolate(
dt,
id_cols,
extrapolate_col,
value_col,
extrapolate_vals,
method,
n_groups_fit,
n_groups_bin = NULL
)
Arguments
dt |
[data.table() ]
Data you would like to extrapolate. |
id_cols |
[characher() ]
Columns which uniquely identify rows of dt . Extrapolation will be
done separately by group on id_cols excluding interpolate_col . |
extrapolate_col |
[characher(1) ]
Name of column of dt which is a numeric variable defining the groups
you would like to extrapolate for. |
value_col |
[characher(1) ]
Name of a column of dt which is a numeric variable defining the values
you would like to extrapolate. |
extrapolate_vals |
[numeric(1) ]
The values of extrapolate_col that you would like included in the
outputs, including both input values and extrapolated values. |
method |
[characher(1) ]
The method for extrapolation. Must be either 'linear', 'rate_of_change',
or 'uniform'. |
n_groups_fit |
[numeric(1) ]
The number of values of extrapolate_col to include in determining the
extrapolation. For method 'linear' this is the groups used to fit a linear
model. For method 'rate_of_change' this is the groups used to calculate a
mean rate of change. For method 'uniform' this is the number of groups to
combine into a uniform mean value which will be filled in. The groups will
be selected as the first N groups or the last N groups in the data
depending on the direction of extrapolation. Example: for extrapolation
from years 1990:2000 up to year 2020 with n_groups_fit = 5, only
years 1995:2000 will be used to fit the extrapolation model. |
n_groups_bin |
[numeric(1) ]
TODO: add option to bin groups before fitting linear model or calculating
rate of change. |
Value
[data.table()
] dt
with added rows for extrapolated values.
Details
For reference on rate of change, see page 12 of the Preston Demography book, or,
https://www.un.org/esa/sustdev/natlinfo/indicators/methodology_sheets/demographics/population_growth_rate.pdf
Consider log transforming your data prior to extrapolation if appropriate.
Examples