Skip to contents

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 provides the parameters for this method using the input data that should be given anyway if large claims are simulated.
In the second step, these parameters can be used by the function generate_small_claims_future_annuities().

Usage

generate_small_claims_annuities_parameters(
  pool_of_annuities,
  large_claims_list,
  special_claims,
  indices,
  small_claims_reserved,
  age_shift,
  mortality
)

Arguments

pool_of_annuities

Dataframe of all historic annuities, see description of pool_of_annuities in details of prepare_data().

large_claims_list

Dataframe of large claims generated with generate_claims_list().

special_claims

Dataframe with special claims, see details of compute_special_claims().

indices

Dataframe for indexation, see details of prepare_data().

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.

age_shift

Dataframe, see description of age_shift_xmpl.

mortality

Dataframe, see description of mortality_xmpl.

Value

A list of two numeric parameter vectors:

  1. factors_additive_method which can be applied to the small claims reserves to predict the future number of small claims' annuities.

  2. mean_small_claims_annuity which is multiplied to the future number of small claims' annuities.

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
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)#'
#> $factors_additive_method
#>  [1] 0.000000e+00 2.422744e-09 4.092246e-09 4.982780e-09 2.524585e-09
#>  [6] 3.428258e-09 3.524056e-09 3.595645e-09 9.185317e-10 0.000000e+00
#> [11] 0.000000e+00 1.013291e-09 2.104959e-09 1.091693e-09 0.000000e+00
#> [16] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.396735e-09
#> [21] 1.471793e-09 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> [26] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> [31] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> 
#> $mean_small_claims_annuity
#>   [1] 5.130901e+03 4.338298e+03 3.558303e+03 2.999005e+03 2.475677e+03
#>   [6] 1.928619e+03 1.975292e+03 1.710160e+03 1.447696e+03 1.256395e+03
#>  [11] 1.046982e+03 9.077445e+02 7.877919e+02 6.765069e+02 6.701865e+02
#>  [16] 5.596239e+02 4.828530e+02 4.684175e+02 4.012094e+02 3.431339e+02
#>  [21] 2.930073e+02 2.497965e+02 2.125984e+02 2.047202e+02 1.904248e+02
#>  [26] 1.448504e+02 1.212692e+02 1.184317e+02 9.508415e+01 8.034766e+01
#>  [31] 6.769978e+01 5.624445e+01 4.713921e+01 3.939037e+01 3.054556e+01
#>  [36] 2.544054e+01 2.112368e+01 1.748476e+01 1.200090e+01 8.919841e+00
#>  [41] 7.355948e+00 6.046673e+00 4.954224e+00 1.253242e-01 9.359556e-02
#>  [46] 6.963949e-02 5.162699e-02 3.813234e-02 2.805016e-02 2.056652e-02
#>  [51] 1.502370e-02 1.093412e-02 7.928328e-03 5.727561e-03 4.122323e-03
#>  [56] 2.955908e-03 2.111804e-03 1.503158e-03 1.065965e-03 7.531253e-04
#>  [61] 5.301217e-04 3.717626e-04 2.597375e-04 1.807919e-04 1.246172e-04
#>  [66] 8.612648e-05 5.929872e-05 4.067222e-05 2.778992e-05 1.891498e-05
#>  [71] 1.282008e-05 8.658823e-06 5.825389e-06 3.874950e-06 2.587054e-06
#>  [76] 1.720297e-06 1.139321e-06 7.514819e-07 4.936335e-07 3.221606e-07
#>  [81] 2.099067e-07 1.361868e-07 8.797930e-08 5.659049e-08 3.624144e-08
#>  [86] 2.310710e-08 1.466705e-08 7.636305e-09 4.861432e-09 3.078705e-09
#>  [91] 1.939469e-09 1.215336e-09 7.575225e-10 4.696450e-10 2.896045e-10
#>  [96] 1.776194e-10 1.083450e-10 6.572872e-11 3.965588e-11 2.379449e-11
#> [101] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> [106] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> [111] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> [116] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> [121] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#> [126] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
#>