Skip to contents

Interpolate Cumulative Loss Development Factors (CDFs).

Usage

interp(new_age, cdf_array, age_array, cutoff = 450, method = 3)

interp.dblexp(new_age, age_high, age_low, cdf_high, cdf_low)

interp.exp(new_age, age_high, age_low, cdf_high, cdf_low)

interp.linear(new_age, age_high, age_low, cdf_high, cdf_low)

Arguments

new_age

integer - value of the new age whose CDF is to be interpolated

cdf_array

numeric vector of CDFs (usually representative of the selected factors)

age_array

numeric vector of ages corresponding to the supplied cdf_array

cutoff

the largest possible age, after which, no interpolation is performed

method

integer - must be 1, 2, or 3 where 1 represents linear, 2 represents exponential, and 3 represents double exponential. Defaults to 3, but falls back onto 1 if necessary.

age_low, age_high

Low and High ages

cdf_low, cdf_high

Low and High CDFs

Value

derived numeric value for the supplied new_age's CDF

Details

This generic function comes with three possible methods:

  1. Linear Interpolation

  2. Exponential Interpolation

  3. Double Exponential Interpolation

Actuaries often have to interpolate values in-between the selected Loss Development Factors (LDFs) / Cumulative Loss Development Factors (CDFs) in order to derive development factors at a variety of possible ages of maturity, outside the scope of the selected factors by the actuary.

For example, an actuary will select factors by maturity or development age in months using actuarial triangles. Due to the fact the actuarial selections are limited to the maturities present in the triangle (i.e. ages 12, 24, etc.), the factors for ages before, after, and in-between the selection ages must be interpolated.

A comprehensive approach to deriving the interpolated values would follow a pattern similar to the following:

  • For ages of maturity <= First Selected Age of Maturity (i.e. <= 12), factors are derived using persistencies. A persistency is simply a percentage value representing the percent paid/reported at a given age compared to the age's ceiling and floor. For example, a persistency as of age 3 would represent the percent paid/reported at 3 months of development out of the total percent paid/reported at 12 months of development. The persistency as of age 15 would represent the percent paid/reported at age 15 compared to the total percent paid/reported between ages 12 and 24.

  • For ages of maturity Selected Age of Maturity Floor <= x <= Selected Age of Maturity Ceiling, i.e. in-between ages, the factors are derived using double-exponential interpolation using the selections at the floor and ceiling ages.

  • For ages of maturity >= Last Selected Age of Maturity (i.e. >= 106), a decay factor approach is used to decay the final selected factor across the ages beyond that final age.

Functions

  • interp.dblexp(): Double Exponential Interpolation

  • interp.exp(): Exponential Interpolation

  • interp.linear(): Linear Interpolation

Examples

cdfs <- c(3.579, 2.866, 2.489, 2.121, 1.876, 1.543, 1.222, 1.150, 1.109, 1.005, 1.0025)
ages <- seq(from = 12, to = (length(cdfs) * 12), by = 12)

interp(14, cdfs, ages)
#> [1] 3.438518
interp(12, cdfs, ages) == cdfs[[1]]
#> [1] TRUE
interp(27, cdfs, ages, method = 2)
#> [1] 2.758217