Estimate for future annuities stemming from small claims
generate_small_claims_future_annuities.Rd
Payments for future annuities are an important part of the large claims simulation. But depending on the threshold
annuities may also be a part of the estimation for small claims. This could be the case if the annuity belongs to a
claim that has never exceeded the threshold or if the annuity has been created in the years before a claim
exceeds the threshold.
There may be several ways to estimate the future payments for this part. This implementation uses the historic
annuities that have been created for small claims to predict a number of future annuities per origin and development
year by an additive method. This number will then be multiplied with a mean annuity.
This function calculates the estimate for future annuities stemming from small claims using the parameters that
can either be generated by generate_small_claims_annuities_parameters()
or have been delivered from external.
Usage
generate_small_claims_future_annuities(
small_claims_annuities_parameters_list,
small_claims_reserved,
indices
)
Arguments
- small_claims_annuities_parameters_list
List of parameter vectors as a result of
generate_small_claims_annuities_parameters()
.- small_claims_reserved
Numeric matrix of small claims reserves with origin years as rows and calendar years as columns. This matrix can be generated as difference from the all claims' triangle and the large and special claims triangle. Rownames must be the origin years. The reserves serve as volume measure for the additive method.
- indices
Dataframe for indexation, see details of
prepare_data()
.
Value
A numeric matrix with one row per origin year and one column for each past and 250 future calendar years. The columns for past calendar years are all 0, but the columns for future calendar years contain the estimated payments for future annuities stemming from small claims.
Examples
#' # this example uses data provided with this package.
# A few preparing steps are necessary to generate the needed arguments from the example
# objects provided with this package.
# The claims with claim_ids Claim#43, Claim#44 and Claim#68 are identified as special claims.
special_claims <- data.frame(Claim_id = c("Claim#43", "Claim#44", "Claim#68"),
Reserve2BE_percentage = c(0.8, 0.5, 1.2),
Rollout_type = c("linear", "constant", "external"),
Pattern_id = c(1,1,3))
external_patterns <- list(c(0.5, 0.3, 0.2),
c(1),
c(0.7, 0.3))
# Create large claims list
extended_claims_data <- prepare_data(claims_data = claims_data_xmpl,
indices = indices_xmpl,
threshold = 400000,
first_orig_year = 1989,
last_orig_year = 2023,
expected_year_of_growing_large = 3,
reserve_classes = c(1, 200001, 400001, 700001, 1400001),
pool_of_annuities = pool_of_annuities_xmpl)
# remove special claims from extended_claims_data
extended_large_claims_data <- extended_claims_data[
extended_claims_data$Claim_id %in% special_claims$Claim_id,]
large_claims_reserved <- generate_triangle(data = extended_large_claims_data,
col_name = "Cl_reserve",
first_orig_year = 1989,
last_orig_year = 2023)
large_claims_list <- generate_claims_list(extended_claims_data = extended_claims_data,
first_orig_year = 1989,
last_orig_year = 2023)
result_special_claims <- compute_special_claims(special_claims = special_claims,
extended_claims_data = extended_claims_data,
first_orig_year = 1989,
last_orig_year = 2023,
end_of_tail = 50,
external_patterns = external_patterns)
special_claims_reserved <- result_special_claims$special_claims_reserved
small_claims_reserved <- all_claims_reserved_xmpl -
large_claims_reserved - special_claims_reserved
# apply these objects as arguments to the function to create parameters
params <- generate_small_claims_annuities_parameters(
pool_of_annuities = pool_of_annuities_xmpl,
large_claims_list = large_claims_list,
special_claims = special_claims,
indices = indices_xmpl,
small_claims_reserved = small_claims_reserved,
age_shift = age_shift_xmpl,
mortality = mortality_xmpl)
# use this parameter list to get the estimate
generate_small_claims_future_annuities(
small_claims_annuities_parameters_list = params,
small_claims_reserved = small_claims_reserved,
indices = indices_xmpl)[c("2022", "2023"), 1:50]
#> 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
#> 2022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 2023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
#> 2022 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 2023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028
#> 2022 0 0 0 0 0 388.0534 814.7829 934.5885 1134.306 1324.307
#> 2023 0 0 0 0 0 262.4130 678.4143 1140.5622 1252.907 1461.106
#> 2029 2030 2031 2032 2033 2034 2035 2036
#> 2022 1488.774 1361.555 1165.465 987.6423 972.0039 1106.229 1104.066 942.8759
#> 2023 1656.660 1852.540 1689.309 1445.1893 1226.2003 1197.092 1347.884 1339.2046
#> 2037 2038
#> 2022 798.2616 679.8942
#> 2023 1143.8759 973.4164