The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Getting started with vitopack

library(vitopack)

vitopack collects a handful of utilities for non-life actuarial work. This vignette walks through the three most common use cases.

1. Building a chain-ladder triangle

Start from long claims data and aggregate into a triangle:

df <- data.frame(
  origin = c(1, 1, 1, 2, 2, 3),
  dev    = c(0, 1, 2, 0, 1, 0),
  paid   = c(10, 5, 2, 20, 7, 15)
)

trg <- create_triangle(df,
                       row_num = "origin",
                       col_num = "dev",
                       value   = "paid")
trg
#>      [,1] [,2] [,3]
#> [1,]   10    5    2
#> [2,]   20    7   NA
#> [3,]   15   NA   NA

Cumulate, then read off development factors:

cum <- create_cumulative_triangle(trg)
create_chl_coefs(cum, chl_length = c("full", 2))
#>          CH_L_lengths  0   1        2
#> 1 chain_ladder - full NA 1.4 1.133333
#> 2    chain_ladder - 2 NA 1.4 1.133333

A weighted variant accepts an explicit weight matrix (e.g. exposure):

weight <- matrix(1, nrow = nrow(cum), ncol = ncol(cum))
weight[is.na(cum)] <- NA
create_chl_coefs_weighted(cum, weight, chl_length = "full")
#>          CH_L_lengths  0     1        2
#> 1 chain_ladder - full NA 1.425 1.133333

For visual inspection use create_chl_trg_visualization() (requires the plotly package, listed as a Suggests dependency).

2. Per-period exposure columns

Turn a policy table into one column per accounting period:

policies <- data.frame(
  policy_start = as.Date(c("2024-01-15", "2024-06-01")),
  policy_end   = as.Date(c("2024-12-31", "2025-05-31"))
)

create_policy_exposure_columns_m(
  data             = policies,
  exp_names        = c("exp_q1", "exp_q2", "exp_q3", "exp_q4"),
  start_months     = c("2024-01-01", "2024-04-01", "2024-07-01", "2024-10-01"),
  end_months       = c("2024-03-31", "2024-06-30", "2024-09-30", "2024-12-31"),
  start_policy_var = "policy_start",
  end_policy_var   = "policy_end"
)

3. Czech birth numbers

Three slightly different rules for resolving the century are supported.

rc_to_birth_day("900615/1234")     # man, 1990-06-15
#> [1] "1990-06-15"
rc_to_birth_day("055615/1234")     # woman, 2005-06-15
#> [1] "2005-06-15"
rc_to_birth_day_2("240615/1234")   # cut-off 25 → 2024-06-15
#> [1] "2024-06-15"

4. Smooth color palettes for plots

rgb_df <- rgb_colors_for_plot()
get_colors_duo(rgb_df, 8)
#> [1] "#99FF99" "#00CC92" "#99D3FF" "#1C00CC" "#F099FF" "#CC0057" "#FFB599"
#> [8] "#CCCC00"
plot_color_bars(12)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.