| Title: | Reinsurance Treaties Application |
|---|---|
| Description: | Application of reinsurance treaties to claims portfolios. The package creates a class Claims whose objective is to store claims and premiums, on which different treaties can be applied. A statistical analysis can then be applied to measure the impact of reinsurance, producing a table or graphical output. This package can be used for estimating the impact of reinsurance on several portfolios or for pricing treaties through statistical analysis. Documentation for the implemented methods can be found in "Reinsurance: Actuarial and Statistical Aspects" by Hansjöerg Albrecher, Jan Beirlant, Jozef L. Teugels (2017, ISBN: 978-0-470-77268-3) and "REINSURANCE: A Basic Guide to Facultative and Treaty Reinsurance" by Munich Re (2010) <https://www.munichre.com/site/mram/get/documents_E96160999/mram/assetpool.mr_america/PDFs/3_Publications/reinsurance_basic_guide.pdf>. |
| Authors: | Arnaud Buzzi |
| Maintainer: | Arnaud Buzzi <[email protected]> |
| License: | GPL (>= 2) |
| Version: | 0.1.0 |
| Built: | 2026-06-03 07:03:35 UTC |
| Source: | https://github.com/cran/reinsureR |
apply_treaty applies a treaty on an object of type Claims (Claims-class).
apply_treaty(claims, treaty)apply_treaty(claims, treaty)
claims |
|
treaty |
The updated Claims object
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1)
claims defines an object of class Claims (Claims-class).
claims(claims, premiums)claims(claims, premiums)
claims |
Data.frame. Claims table. Contains at least 2 columns, and may contain 2 optional columns:
|
premiums |
Data.frame. Premiums table. Contains at least 2 columns, and may contain 1 optional column:
|
If portfolio or simulId are not given in the input tables, the default value is set to 0 in the Claims object.
Consistency needs to be insured between claims and premiums. For every year where a claim is entered, a premium must be registered. The same goes for the portfolios.
Portfolios differenciation is used to apply reinsurance treaties to different part of claims.
Simulation Ids are used in the case of stochastic simulations, in order to apply reinsurance treaties over simulated claims. Simulations Id are not used for premiums, which are mapped through year and portfolio. Be careful to have a unique premium for each couple year/portfolio.
For a unique combination of year, portfolio and simulId can be associated multiple events that will be taken into account when applying Excess of Loss reinsurance.
An object of class Claims (Claims-class), initialized with the values given in input. Its basic methods are:
show
draw(draw): plotting function;
summy(summy): plotting function;
get_claims(get_claims): extract claim table from Claims object;
get_premiums(get_premiums): extract premium table from Claims object;
get_commissions(get_commissions): extract commissions table from Claims object;
get_reinstatements(get_reinstatements): extract reinstatements table from Claims object;
get_treaties(get_treaties): extract applied treaties list from Claims object.
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p)
An S4 class to represent Claims and Premiums for reinsurance computations.
## S4 method for signature 'Claims' show(object)## S4 method for signature 'Claims' show(object)
object |
The object to display |
show: show method
clmData.table. Claims table. Contains at least 4 columns:
year: year associated with the considered claim;
portfolio: portfolio associated with the considered claim;
simulId: simulation id of the considered claim. Useful for stochastic modelling;
amount: amount of the considered claim.
prmData.table. Premiums table. Contains at least 3 columns:
year: year associated with the considered premium;
portfolio: portfolio associated with the considered premium;
amount: amount of the considered premium.
rnsData.table. Reinstatement amount table, that only concerns excess of loss treaties. Contains at least 2 columns:
year: year associated with the considered reinstatements;
simulId: simulation id of the considered reinstatement amount. Useful for stochastic modelling.
comData.table. Commissions amount table, that only concerns quota share treaties. Contains at least 2 columns:
year: year associated with the considered commission amount;
portfolio: portfolio associated with the considered commission.
trtVector. List of treaties applied to the Claims object.
draw produces a graphical representation of an object Claims (Claims-class).
draw(x, value = "all", moment = "gain", output = "boxplot") ## S4 method for signature 'Claims' draw(x, value = "all", moment = "gain", output = "boxplot")draw(x, value = "all", moment = "gain", output = "boxplot") ## S4 method for signature 'Claims' draw(x, value = "all", moment = "gain", output = "boxplot")
x |
The Claims object to represent. |
value |
Character. The value to consider plot, among:
|
moment |
Character. Moment for analysis:
|
output |
Character. Type of graph to produce:
|
For boxplots, a red dot represent the mean value for each year.
a plot
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1) draw(claims)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1) draw(claims)
get_claims gets the claims table of a Claims (Claims-class) object.
get_claims(object) ## S4 method for signature 'Claims' get_claims(object)get_claims(object) ## S4 method for signature 'Claims' get_claims(object)
object |
The object to display |
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) get_claims(claims)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) get_claims(claims)
get_commissions gets the commissions induced by QS treaties applied to Claims (Claims-class) object.
get_commissions(object) ## S4 method for signature 'Claims' get_commissions(object)get_commissions(object) ## S4 method for signature 'Claims' get_commissions(object)
object |
The object to display |
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- qs(0.8, com = 0.25) claims <- apply_treaty(claims, treaty_1) get_commissions(claims)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- qs(0.8, com = 0.25) claims <- apply_treaty(claims, treaty_1) get_commissions(claims)
get_reinstatements gets the reinstatements induced by XL treaties applied to Claims (Claims-class) object.
get_reinstatements(object) ## S4 method for signature 'Claims' get_reinstatements(object)get_reinstatements(object) ## S4 method for signature 'Claims' get_reinstatements(object)
object |
The object to display |
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1) get_reinstatements(claims)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1) get_reinstatements(claims)
get_treaties gets the characteristics of treaties applied to Claims (Claims-class) object.
get_treaties(object) ## S4 method for signature 'Claims' get_treaties(object)get_treaties(object) ## S4 method for signature 'Claims' get_treaties(object)
object |
The object to display |
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- qs(0.8, com = 0.25) claims <- apply_treaty(claims, treaty_1) get_treaties(claims)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- qs(0.8, com = 0.25) claims <- apply_treaty(claims, treaty_1) get_treaties(claims)
qs defines an object of class QS (QS-class).
qs(csn_clm, csn_prm = "auto", com = 0, ptf = "all")qs(csn_clm, csn_prm = "auto", com = 0, ptf = "all")
csn_clm |
Numeric. Cession rate on claims. Should be between 0 and 1. |
csn_prm |
Numeric. Cession rate on premiums. Should be between 0 and 1. Default value set to |
com |
Numeric. Commission rate, applied on the part of premiums given to the reinsurer. Should be between 0 and 1. Default value set to 0. |
ptf |
Vector. List of portfolios on which the treaty is to be applied on. Default value set to all. |
An object of class QS (QS-class), initialized with the values given in input. Its basic methods are:
show
treaty_1 <- qs(0.8, com = 0.25) treaty_1treaty_1 <- qs(0.8, com = 0.25) treaty_1
An S4 class to represent a Quota Share Treaty
## S4 method for signature 'QS' show(object)## S4 method for signature 'QS' show(object)
object |
the object to display |
show: Quota Share Treaty: show method
csn_clmNumeric. Cession rate on claims. Should be between 0 and 1.
csn_prmNumeric. Cession rate on premiums. Should be between 0 and 1.
comNumeric. Commission rate, applied on the part of premiums given to the reinsurer. Should be between 0 and 1.
ptfVector. List of portfolios on which the treaty is to be applied on.
trtCharacter. Always equal to "QS". Identifier for the type of treaty.
sl defines an object of class SL (SL-class), which represents a Stop Loss treaty.
sl(ded = Inf, lim = Inf, prm = 0, ptf = "all")sl(ded = Inf, lim = Inf, prm = 0, ptf = "all")
ded |
Numeric. Deductible amount of the treaty. Should be superior to 0. |
lim |
Numeric. Limit amount for the treaty. Should be superior to 0. May be equal to |
prm |
Numeric. Premium rate, which represents the proportion of the premium given to the reinsurer as price for the treaty. Should be between 0 and 1. |
ptf |
Vector. List of portfolios on which the treaty is to be applied on. Default value set to all. |
An object of class SL (SL-class), initialized with the values given in input. Its basic methods are:
show
treaty_1 <- sl(ded = 100000, lim = 20000, prm = 0.01, ptf = "all") treaty_1treaty_1 <- sl(ded = 100000, lim = 20000, prm = 0.01, ptf = "all") treaty_1
An S4 class to represent a Stop Loss Treaty
## S4 method for signature 'SL' show(object)## S4 method for signature 'SL' show(object)
object |
the object to display |
show: Stop Loss Treaty: show method
dedNumeric. Deductible amount of the treaty. Should be superior to 0.
limNumeric. Limit amount for the treaty. Should be superior to 0. May be equal to Inf.
prmNumeric. Premium rate, which represents the proportion of the premium given to the reinsurer as price for the treaty. Should be between 0 and 1.
ptfVector. List of portfolios on which the treaty is to be applied on.
trtCharacter. Always equal to "SL". Identifier for the type of treaty
summy summarizes the data contained in the object Claims (Claims-class).
summy(object, op = "mean") ## S4 method for signature 'Claims' summy(object, op = "mean")summy(object, op = "mean") ## S4 method for signature 'Claims' summy(object, op = "mean")
object |
The Claims object to represent. |
op |
Character. The aggregation operation over the simulIds, among:
|
The summarized data
c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1) summy(claims)c <- data.frame(year = unlist(sapply(2000:2017, function(x) rep(x, rpois(1,3))))) c$amount <- pmax(rnorm(nrow(c), 200000, 100000), 0) p <- aggregate(amount ~ year, c, sum) claims <- claims(c, p) treaty_1 <- xl(ded = 100000, lim = 20000, aad = 5000, aal = 200000, prm = 0.01, rns = 1) claims <- apply_treaty(claims, treaty_1) summy(claims)
xl defines an object of class XL (XL-class), which represents an Excess of Loss treaty.
xl(ded = Inf, lim = Inf, aal = Inf, aad = Inf, prm = 0, rns = "none", ptf = "all")xl(ded = Inf, lim = Inf, aal = Inf, aad = Inf, prm = 0, rns = "none", ptf = "all")
ded |
Numeric. Deductible amount of the treaty. Should be superior to 0. |
lim |
Numeric. Limit amount for the treaty. Should be superior to 0. May be equal to |
aal |
Numeric. Annual Aggregate Deductible amount of the treaty. Should be superior to 0. |
aad |
Numeric. Annual Aggregate Limit amount for the treaty. Should be superior to 0. May be equal to |
prm |
Numeric. Premium rate, which represents the proportion of the premium given to the reinsurer as price for the treaty. Should be between 0 and 1. |
rns |
Numeric vector. Reinstatement prices. Vector of lentgh equals to the number of reinstatements with each value equals the price of the reinstatement. |
ptf |
Vector. List of portfolios on which the treaty is to be applied on. Default value set to all. |
Reinstatements are the number of time the limit can be reconstructed. The vector given for this parameter will be an indication of the price for each reinstatement. For example, a rns value of c(0, 1) will give one free reinstatement and one reinstatement paid 100% of the premium before totally consuming the limit.
An object of class XL (XL-class), initialized with the values given in input. Its basic methods are:
show
treaty_1 <- xl(ded = 200000, lim = 20000, aad = 0, aal = 10000, prm = 0.01, rns = c(0, 1)) treaty_1treaty_1 <- xl(ded = 200000, lim = 20000, aad = 0, aal = 10000, prm = 0.01, rns = c(0, 1)) treaty_1
An S4 class to represent an Excess of Loss Treaty
## S4 method for signature 'XL' show(object)## S4 method for signature 'XL' show(object)
object |
the object to display |
show: Excess of Loss Treaty: show method
dedNumeric. Deductible amount of the treaty. Should be superior to 0.
limNumeric. Limit amount for the treaty. Should be superior to 0. May be equal to Inf.
aalNumeric. Annual Aggregate Deductible amount of the treaty. Should be superior to 0.
aadNumeric. Annual Aggregate Limit amount for the treaty. Should be superior to 0. May be equal to Inf.
rnsNumeric vector. Reinstatement prices. Vector of lentgh equals to the number of reinstatements with each value equals the price of the reinstatement.
prmNumeric. Premium rate, which represents the proportion of the premium given to the reinsurer as price for the treaty. Should be between 0 and 1.
ptfVector. List of portfolios on which the treaty is to be applied on.
trtCharacter. Always equal to "SL". Identifier for the type of treaty