Compute the adjustment coefficient in ruin theory, or return a
function to compute the adjustment coefficient for various reinsurance
retentions.
Usage
adjCoef(mgf.claim, mgf.wait = mgfexp, premium.rate, upper.bound,
h, reinsurance = c("none", "proportional", "excess-of-loss"),
from, to, n = 101)
## S3 method for class 'adjCoef'
plot(x, xlab = "x", ylab = "R(x)",
main = "Adjustment Coefficient", sub = comment(x),
type = "l", add = FALSE, ...)
Arguments
mgf.claim
an expression written as a function of x or of
x and y, or alternatively the name of a function,
giving the moment generating function (mgf) of the claim severity
distribution.
mgf.wait
an expression written as a function of x, or
alternatively the name of a function, giving the mgf of the
claims interarrival time distribution. Defaults to an exponential
distribution with mean 1.
premium.rate
if reinsurance = "none", a numeric value of
the premium rate; otherwise, an expression written as a function of
y, or alternatively the name of a function, giving the
premium rate function.
upper.bound
numeric; an upper bound for the coefficient,
usually the upper bound of the support of the claim severity mgf.
h
an expression written as a function of x or of
x and y, or alternatively the name of a function,
giving function h in the Lundberg equation (see below);
ignored if mgf.claim is provided.
reinsurance
the type of reinsurance for the portfolio; can
be abbreviated.
from, to
the range over which the adjustment coefficient will
be calculated.
n
integer; the number of values at which to evaluate the
adjustment coefficient.
x
an object of class "adjCoef".
xlab, ylab
label of the x and y axes, respectively.
main
main title.
sub
subtitle, defaulting to the type of reinsurance.
type
1-character string giving the type of plot desired; see
plot for details.
add
logical; if TRUE add to already existing plot.
...
further graphical parameters accepted by
plot or lines.
Details
In the typical case reinsurance = "none", the coefficient of
determination is the smallest (strictly) positive root of the Lundberg
equation
h(x) = E[exp(x B - x c W)] = 1
on [0, m), where m =upper.bound, B is the
claim severity random variable, W is the claim interarrival
(or wait) time random variable and c =premium.rate. The
premium rate must satisfy the positive safety loading constraint
E[B - c W] < 0.
With reinsurance = "proportional", the equation becomes
h(x, y) = E[exp(x y B - x c(y) W)] = 1,
where y is the retention rate and c(y) is the premium rate
function.
With reinsurance = "excess-of-loss", the equation becomes
h(x, y) = E[exp(x min(B, y) - x c(y) W)] = 1,
where y is the retention limit and c(y) is the premium rate
function.
One can use argument h as an alternative way to provide
function h(x) or h(x, y). This is necessary in cases where
random variables B and W are not independent.
The root of h(x) = 1 is found by minimizing (h(x) - 1)^2.
Value
If reinsurance = "none", a numeric vector of length one.
Otherwise, a function of class "adjCoef" inheriting from the
"function" class.
Bowers, N. J. J., Gerber, H. U., Hickman, J., Jones, D. and Nesbitt, C.
(1986), Actuarial Mathematics, Society of Actuaries.
Centeno, M. d. L. (2002), Measuring the effects of reinsurance by the
adjustment coefficient in the Sparre-Anderson model, Insurance:
Mathematics and Economics30, 37–49.
Gerber, H. U. (1979), An Introduction to Mathematical Risk
Theory, Huebner Foundation.
Klugman, S. A., Panjer, H. H. and Willmot, G. E. (2008),
Loss Models, From Data to Decisions, Third Edition, Wiley.
Examples
## Basic example: no reinsurance, exponential claim severity and wait
## times, premium rate computed with expected value principle and
## safety loading of 20%.
adjCoef(mgfexp, premium = 1.2, upper = 1)
## Same thing, giving function h.
h <- function(x) 1/((1 - x) * (1 + 1.2 * x))
adjCoef(h = h, upper = 1)
## Example 11.4 of Klugman et al. (2008)
mgfx <- function(x) 0.6 * exp(x) + 0.4 * exp(2 * x)
adjCoef(mgfx(x), mgfexp(x, 4), prem = 7, upper = 0.3182)
## Proportional reinsurance, same assumptions as above, reinsurer's
## safety loading of 30%.
mgfx <- function(x, y) mgfexp(x * y)
p <- function(x) 1.3 * x - 0.1
h <- function(x, a) 1/((1 - a * x) * (1 + x * p(a)))
R1 <- adjCoef(mgfx, premium = p, upper = 1, reins = "proportional",
from = 0, to = 1, n = 11)
R2 <- adjCoef(h = h, upper = 1, reins = "p",
from = 0, to = 1, n = 101)
R1(seq(0, 1, length = 10)) # evaluation for various retention rates
R2(seq(0, 1, length = 10)) # same
plot(R1) # graphical representation
plot(R2, col = "green", add = TRUE) # smoother function
## Excess-of-loss reinsurance
p <- function(x) 1.3 * levgamma(x, 2, 2) - 0.1
mgfx <- function(x, l)
mgfgamma(x, 2, 2) * pgamma(l, 2, 2 - x) +
exp(x * l) * pgamma(l, 2, 2, lower = FALSE)
h <- function(x, l) mgfx(x, l) * mgfexp(-x * p(l))
R1 <- adjCoef(mgfx, upper = 1, premium = p, reins = "excess-of-loss",
from = 0, to = 10, n = 11)
R2 <- adjCoef(h = h, upper = 1, reins = "e",
from = 0, to = 10, n = 101)
plot(R1)
plot(R2, col = "green", add = TRUE)