## risk.Distortion


A distortion risk measure: `rho(X) = integral of g(S(x)) dx` for a


Usage


``` python
risk.Distortion()
```


concave distortion [g](pricing.Mbbefd.md#prospicio.pricing.Mbbefd.g) of the survival function.

Make one with [Distortion.tvar](risk.Distortion.md#prospicio.risk.Distortion.tvar), [Distortion.wang](risk.Distortion.md#prospicio.risk.Distortion.wang), [Distortion.proportional_hazard](risk.Distortion.md#prospicio.risk.Distortion.proportional_hazard), [Distortion.dual_power](risk.Distortion.md#prospicio.risk.Distortion.dual_power) or [Distortion.exponential](risk.Distortion.md#prospicio.risk.Distortion.exponential). Every one is coherent, and each has a parameter value that gives the mean (or a limit that does).


## Examples

``` python
>>> from prospicio.distributions import Sampled
>>> from prospicio.risk import Distortion
>>> x = Sampled([1.0, 2.0, 3.0, 4.0])
>>> Distortion.tvar(0.5).measure(x)
```

3.5

``` python
>>> Distortion.tvar(0.5).weights(4)
```

\[0.0, 0.0, 0.5, 0.5\]


## Methods

| Name | Description |
|----|----|
| [dual_power()](#dual_power) | Dual power transform: `g(s) = 1 - (1 - s)**beta`. |
| [exponential()](#exponential) | Exponential spectral measure: `g(s) = (1 - exp(-k s)) / (1 - exp(-k))`, |
| [g()](#g) | The distortion `g(s)` of a survival probability `s`. |
| [measure()](#measure) | The risk measure of a distribution. |
| [proportional_hazard()](#proportional_hazard) | Proportional hazard transform: `g(s) = s**rho`. |
| [tvar()](#tvar) | Tail value at risk at level [p](models.Elpd.md#prospicio.models.Elpd.p): `g(s) = min(s / (1 - p), 1)`. |
| [wang()](#wang) | Wang transform: `g(s) = Phi(Phi^-1(s) + lambda)`. |
| [weights()](#weights) | Weights for [n](distributions.Binomial.md#prospicio.distributions.Binomial.n) equally likely values sorted ascending. |

------------------------------------------------------------------------


#### dual_power()


Dual power transform: `g(s) = 1 - (1 - s)**beta`.


Usage


``` python
dual_power(beta)
```


##### Parameters


`beta: float`  
`>= 1`.


##### Returns


`Distortion`  


------------------------------------------------------------------------


#### exponential()


Exponential spectral measure: `g(s) = (1 - exp(-k s)) / (1 - exp(-k))`,


Usage


``` python
exponential(k)
```


risk aversion that grows exponentially towards the worst outcomes.


##### Parameters


`k: float`  
Risk aversion, positive; the mean as `k -> 0`.


##### Returns


`Distortion`  


------------------------------------------------------------------------


#### g()


The distortion `g(s)` of a survival probability `s`.


Usage


``` python
g(s)
```


##### Parameters


`s: float`  


##### Returns


`float`  


------------------------------------------------------------------------


#### measure()


The risk measure of a distribution.


Usage


``` python
measure(dist)
```


##### Parameters


`dist: (Sampled, Grid or PredictiveDistribution)`  
A predictive distribution is measured on its total.


##### Returns


`float`  


------------------------------------------------------------------------


#### proportional_hazard()


Proportional hazard transform: `g(s) = s**rho`.


Usage


``` python
proportional_hazard(rho)
```


##### Parameters


`rho: float`  
In `(0, 1]`.


##### Returns


`Distortion`  


------------------------------------------------------------------------


#### tvar()


Tail value at risk at level [p](models.Elpd.md#prospicio.models.Elpd.p): `g(s) = min(s / (1 - p), 1)`.


Usage


``` python
tvar(p)
```


##### Parameters


`p: float`  
In `[0, 1]`.


##### Returns


`Distortion`  


------------------------------------------------------------------------


#### wang()


Wang transform: `g(s) = Phi(Phi^-1(s) + lambda)`.


Usage


``` python
wang(lam)
```


##### Parameters


`lam: float`  
Market price of risk, `>= 0`.


##### Returns


`Distortion`  


------------------------------------------------------------------------


#### weights()


Weights for [n](distributions.Binomial.md#prospicio.distributions.Binomial.n) equally likely values sorted ascending.


Usage


``` python
weights(n)
```


##### Parameters


`n: int`  


##### Returns


`list of float`  
Non-negative, summing to 1.
