distributions.GeneralizedPareto

Generalized Pareto severity with a location (Riegel’s parameterization

Usage

distributions.GeneralizedPareto()

via GeneralizedPareto.riegel()): P(X > x) = (1 + xi (x - location) / beta) ** (-1 / xi) above the location.

For tail estimation from draws, see prospicio.risk.Gpd; this class is the same distribution as a pricing severity.

Parameters

xi: float

Shape.

beta: float

Scale; finite and positive.

location: float = 0.0

Examples

>>> from prospicio.distributions import GeneralizedPareto
>>> g = GeneralizedPareto.riegel(1000.0, 2.0, 1.5)
>>> round(g.survival(2000.0), 12) == round((7 / 3) ** -1.5, 12)

True

Attributes

Name Description
beta Scale beta.
location Location, where the support starts.
xi Shape xi.

beta

Scale beta.

beta: float


location

Location, where the support starts.

location: float


xi

Shape xi.

xi: float

Methods

Name Description
cdf() Distribution function P(X <= x).
fit_riegel() Maximum likelihood fit of Riegel’s generalized Pareto with threshold
layer() Expected loss to the layer limit xs attachment.
layer_second_moment() Second moment of the loss to the layer limit xs
layer_variance() Variance of the loss to the layer limit xs attachment.
lev() Limited expected value E[min(X, limit)].
mean() Mean of the distribution (inf if it does not exist).
quantile() Quantile: the smallest x with P(X <= x) >= p.
riegel() Riegel’s generalized Pareto: local alpha alpha_ini at the
sample() n draws from stream stream of the generator keyed by
std() Standard deviation of the distribution.
stop_loss() Expected excess over a retention, E[max(X - retention, 0)].
survival() Survival function P(X > x), accurate far into the tail.
variance() Variance of the distribution (inf if it does not exist).

cdf()

Distribution function P(X <= x).

Usage

cdf(x)
Parameters
x: float
Returns
float

fit_riegel()

Maximum likelihood fit of Riegel’s generalized Pareto with threshold

Usage

fit_riegel(losses, t, reporting_thresholds=None, censored=None, weights=None)

t to large losses at or above t.

Parameters
losses: list of float
t: float
reporting_thresholds: list of float = None
censored: list of bool = None
weights: list of float = None
Returns
GeneralizedPareto
Read the alphas as t / beta (initial) and 1 / xi (tail).

layer()

Expected loss to the layer limit xs attachment.

Usage

layer(limit, attachment)
Parameters
limit: float

inf for an unlimited layer.

attachment: float
Returns
float

layer_second_moment()

Second moment of the loss to the layer limit xs

Usage

layer_second_moment(limit, attachment)
Parameters
limit: float
attachment: float
Returns
float

layer_variance()

Variance of the loss to the layer limit xs attachment.

Usage

layer_variance(limit, attachment)
Parameters
limit: float
attachment: float
Returns
float

lev()

Limited expected value E[min(X, limit)].

Usage

lev(limit)
Parameters
limit: float
Returns
float

mean()

Mean of the distribution (inf if it does not exist).

Usage

mean()
Returns
float

quantile()

Quantile: the smallest x with P(X <= x) >= p.

Usage

quantile(p)
Parameters
p: float
Probability in [0, 1].
Returns
float
Raises
ValueError
If p is outside [0, 1].

riegel()

Riegel’s generalized Pareto: local alpha alpha_ini at the

Usage

riegel(t, alpha_ini, alpha_tail)

threshold t, tending to alpha_tail far out.

Parameters
t: float
alpha_ini: float
alpha_tail: float
Returns
GeneralizedPareto

sample()

n draws from stream stream of the generator keyed by

Usage

sample(n, seed, stream=0)

seed.

Parameters
n: int
seed: int
stream: int = 0
Returns
list of float

std()

Standard deviation of the distribution.

Usage

std()
Returns
float

stop_loss()

Expected excess over a retention, E[max(X - retention, 0)].

Usage

stop_loss(retention)
Parameters
retention: float
Returns
float

survival()

Survival function P(X > x), accurate far into the tail.

Usage

survival(x)
Parameters
x: float
Returns
float

variance()

Variance of the distribution (inf if it does not exist).

Usage

variance()
Returns
float