pricing.TabulatedCurve
A tabulated exposure curve: points (x, G(x)) from (0, 0) to
Usage
pricing.TabulatedCurve()(1, 1), interpolated linearly, as published curves are given (Salzmann’s homeowners scale, Ludwig’s curves, ISO PSOLD tables, a reinsurer’s own).
The table must be concave (its slopes never increase). Its destruction rate is discrete: the points’ x with probabilities from the drops in slope, and a total loss with probability last slope over first. Its mean rate is the first chord’s, x1 / G(x1), so a table needs fine first points for the expected loss to be right.
Parameters
x: list of float-
Increasing from 0 to 1.
g: list of float-
G(x), from 0 to 1.
Raises
ValueError-
If the points do not run from
(0, 0)to(1, 1), or are not increasing and concave.
Examples
>>> from prospicio.pricing import TabulatedCurve
>>> t = TabulatedCurve([0.0, 0.1, 0.5, 1.0], [0.0, 0.4, 0.8, 1.0])
>>> round(t.curve([0.3])[0], 12), t.mean_rate()(0.6, 0.25)
Attributes
| Name | Description |
|---|---|
| g |
The table’s G(x).
|
| x | The table’s x. |
g
The table’s G(x).
g: list[float]
x
The table’s x.
x: list[float]
Methods
| Name | Description |
|---|---|
| curve() |
The exposure curve G(x) at each x (clamped to [0, 1]).
|
| layer_share() | Share of a risk’s expected loss in the layer limit xs |
| mean_rate() |
Mean destruction rate, x1 / G(x1).
|
| rate_quantile() |
Destruction rate at each probability u in (0, 1).
|
curve()
The exposure curve G(x) at each x (clamped to [0, 1]).
Usage
curve(x)Parameters
x: list of float
Returns
list of float
mean_rate()
Mean destruction rate, x1 / G(x1).
Usage
mean_rate()Returns
float
rate_quantile()
Destruction rate at each probability u in (0, 1).
Usage
rate_quantile(u)Parameters
u: list of float
Returns
list of float