Skip to contents

Splits the distortion risk measure of a portfolio's total, rho(S), back to its components, and reports each component's stand-alone measure.

Usage

capital_allocation(
  x,
  distortion,
  method = c("euler", "covariance", "proportional", "marginal", "shapley")
)

Arguments

x

A predictive_distribution.

distortion

A distortion.

method

One of "euler", "covariance", "proportional", "marginal", "shapley".

Value

A list with total (rho(S)), diversification_benefit (sum(standalone) - total) and by_component, the keys data frame of x with columns standalone, allocated and diversification (standalone - allocated).

Details

methodAllocation to component j
"euler"co-measure, as allocate() (CoTVaR for TVaR)
"covariance"rho(S) Cov(X_j, S) / Var(S)
"proportional"stand-alone measures scaled to rho(S)
"marginal"rho(S) - rho(S - X_j) (Merton-Perold); does not add up
"shapley"Shapley value of v(T) = rho(sum of T); at most 12 components

Euler is the only method consistent with marginal changes to the portfolio. The components must add up to the portfolio being allocated.

Examples

pd <- predictive_distribution(
  matrix(c(1, 4, 2, 3, 2, 1, 5, 6), ncol = 2),
  data.frame(lob = c("motor", "property"))
)
a <- capital_allocation(pd, distortion("tvar", 0.5), "shapley")
a$by_component
#>        lob standalone allocated diversification
#> 1    motor        3.5         3             0.5
#> 2 property        5.5         5             0.5
a$diversification_benefit
#> [1] 1