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 floatt: list of float-
Thresholds of the fitted distribution.
reporting_thresholds: list of float = Nonecensored: list of bool = Noneweights: list of float = Nonetruncation: float = Nonetruncation_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-
inffor 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: floatattachment: float
Returns
float
layer_variance()
Variance of the loss to the layer limit xs attachment.
Usage
layer_variance(limit, attachment)Parameters
limit: floatattachment: 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: intseed: intstream: 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