### Description

Constrain the fraction (or value) of variance attributed to each asset.

Also constrain the correlation between each asset and the portfolio.

### Implementation

The `risk.fraction` argument controls these constraints. This can be a blanket constraint on all assets like:

`risk.fraction = 0.05`

Alternatively each asset can be constrained differently.

When a benchmark is used, then the weights for the benchmark in terms of the other assets need to be given via the `bench.weights` argument.

Lower constraints as well as upper constraints can be imposed. Advanced use allows multiple variances and benchmarks.

### Applications

One application of these constraints is in creating risk parity portfolios where each asset (class) has the same contribution to the variance.

### Details

If ** w** is the vector of weights for a portfolio and

**is the variance matrix, then the variance of the portfolio is:**

*V**w’Vw*

We can change this slightly to:

*w * Vw*

where the * operator is element-by-element multiplication. The result of this is a vector that gives the amount of variance attributed to each asset. To turn this into a fraction for each asset, we need to divide by the portfolio variance:

*f = w * Vw / w’Vw*

So ** f** is the fraction of variance for each asset.

#### With a benchmark

When there is a benchmark (with weight vector ** b**), then the variance fraction is computed as:

*f = (w – b) * V(w – b) / (w-b)’V(w – b)*

A key feature when there is a benchmark is that assets not in the portfolio (but in the benchmark) have a non-zero risk fraction. Without a benchmark only assets in the portfolio have a non-zero risk fraction.

#### Even more

There is a more in-depth discussion in the *Portfolio Probe User’s Manual* (available under Documentation). This includes:

- adjusting the risk fraction for the marginal contribution to the benchmark
- constraining correlations of assets to the portfolio
- constraining variance values rather than fractions