risk.capital()
Allocates the distortion risk measure of a portfolio’s total to its
Usage
risk.capital(
pd,
distortion,
method="euler",
)components.
Methods:
"euler": co-measure (for TVaR, the CoTVaRs); consistent with marginal changes to the portfolio."covariance":rho(S) Cov(X_j, S) / Var(S)."proportional": stand-alone measures scaled torho(S)."marginal":rho(S) - rho(S - X_j)(Merton-Perold); does not add up torho(S)."shapley": Shapley value ofv(T) = rho(sum of T); at most 12 components.
Parameters
pd: PredictiveDistribution-
Components that add up to the portfolio.
distortion: Distortionmethod: str = "euler"
Returns
Allocation
Raises
ValueError-
For an unknown method, a constant total (
"covariance"), stand-alone measures summing to 0 ("proportional") or more than 12 components ("shapley").
Examples
>>> from prospicio.distributions import PredictiveDistribution
>>> from prospicio.risk import Distortion, capital
>>> pd = PredictiveDistribution(["lob"], [("motor",), ("property",)],
... [[1.0, 2.0], [4.0, 1.0], [2.0, 5.0], [3.0, 6.0]])
>>> a = capital(pd, Distortion.tvar(0.5))
>>> a.total, a.standalone, a.allocated(8.0, [3.5, 5.5], [2.5, 5.5])
>>> a.diversification_benefit()1.0