Learn R Programming

tailloss (version 1.0)

fPanjer: Panjer Recursion.

Description

Function to calculate the total losses via the Panjer recursion.

Usage

fPanjer(ELT, s, t = 1, theta = 0, cap = Inf, nq = 10, verbose = FALSE)

Arguments

ELT
Data frame containing two numeric columns. The column Loss contains the expected losses from each single occurrence of event. The column Rate contains the arrival rates of a single occurrence of event.
s
Scalar or numeric vector containing the total losses of interest.
t
Scalar representing the time period of interest. The default value is t = 1.
theta
Scalar containing information about the variance of the Gamma distribution: $sd[X] = x * $theta. The default value is theta = 0: the loss associated to an event is considered as a constant.
cap
Scalar representing the financial cap on losses for a single event, i.e. the maximum possible loss caused by a single event. The default value is cap = Inf.
nq
Scalar, number of quantiles added when theta > 0
verbose
A logical, if TRUE gives the entire distribution up to the maximum value of s. If FALSE gives only the results for the specified values of s. The default is verbose = FALSE.

Value

A numeric matrix containing the pre-specified losses s in the first column and the exceedance probabilities in the second column.

References

Panjer, H.H. (1980), `The aggregate claims distribution and stop-loss reinsurance,' Transactions of the Society of Actuaries, 32, 523-545.

Examples

Run this code
data(UShurricane)

# Compress the table to millions of dollars

USh.m <- compressELT(ELT(UShurricane), digits = -6)

EPC.Panjer <- fPanjer(USh.m, s = 1:40, verbose = TRUE)
EPC.Panjer
plot(EPC.Panjer, type = "l", ylim = c(0,1))
# Assuming the losses follow a Gamma with E[X] = x, and Var[X] = 2 * x and cap = 5m

EPC.Panjer.Gamma <- fPanjer(USh.m, s = 1:40, theta = 2, cap = 5, verbose = TRUE)
EPC.Panjer.Gamma
plot(EPC.Panjer.Gamma, type = "l", ylim = c(0,1))

# Compare the two results:

plot(EPC.Panjer, type = "l", main = 'Exceedance Probability Curve',
ylim = c(0, 1))
lines(EPC.Panjer.Gamma, col = 2, lty = 2)
legend("topright", c("Dirac Delta", expression(paste("Gamma(",
alpha[i] == 1 / theta^2, ", ", beta[i] ==1 / (x[i] * theta^2), ")", " cap =", 5))),
lwd = 2, lty = 1:2, col = 1:2)

Run the code above in your browser using DataLab