distributions.PiecewisePareto

Piecewise Pareto: alpha alpha[k] above threshold t[k], the

Usage

distributions.PiecewisePareto()

general large-loss model and the result of tower matching.

Parameters

t: list of float

Strictly increasing positive thresholds.

alpha: list of float

One alpha per threshold; interior ones may be 0, the last must be positive.

truncation: float

Truncation point above the last threshold.

truncation_type: (lp, wd) = "lp"
Truncate the last piece only, or the whole distribution.

Raises

ValueError
If a parameter is out of range.

Examples

>>> from prospicio.distributions import PiecewisePareto
>>> pp = PiecewisePareto([1000.0, 2000.0], [1.0, 2.0])
>>> round(pp.survival(4000.0), 12)

0.125

Attributes

Name Description
alpha Alphas, one per threshold.
t Thresholds.
truncation Truncation point, or None.
truncation_type "lp" or "wd" when truncated, else None.

alpha

Alphas, one per threshold.

alpha: list[float]


t

Thresholds.

t: list[float]


truncation

Truncation point, or None.

truncation: float | None


truncation_type

"lp" or "wd" when truncated, else None.

truncation_type: str | None

Methods

Name Description
cdf() Distribution function P(X <= x).
fit() Maximum likelihood fit of the alphas for thresholds t to large
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.
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()

Maximum likelihood fit of the alphas for thresholds t to large

Usage

fit(
    losses,
    t,
    reporting_thresholds=None,
    censored=None,
    weights=None,
    truncation=None,
    truncation_type="lp"
)

losses at or above t[0].

Parameters
losses: list of float
t: list of float

Thresholds of the fitted distribution.

reporting_thresholds: list of float = None
censored: list of bool = None
weights: list of float = None
truncation: float = None
truncation_type: (lp, wd) = "lp"
Truncate the last piece only (each alpha a closed form or a one-dimensional solve), or the whole distribution (the alphas are coupled and solved together).
Returns
PiecewisePareto

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].

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