Who did it?
In the previous video, you saw the difference between a capital allocation budget and a risk budget. In this exercise, you will construct a risk budget, and discover how large each asset's percent risk contribution is in the total portfolio volatility.
For this last exercise, you will calculate the risk contributions for a portfolio that is again invested 40% in equities, 40% in bonds, 10% in real estate, and 10% in commodities. The function StdDev() plays an important role in this exercise. The StdDev()
function creates a list of the assets' standard deviation ($StdDev
), their risk contribution ($contribution
), and their percent risk contribution ($pct_contrib_StdDev
).
You will be using three arguments in the StdDev()
function to do this calculation. The first is R
, a vector, matrix, data frame, time series, or zoo object of returns. The second is portfolio_method
, which you will set to component
, and the third is weights
.
The object returns
is loaded in your workspace.
This exercise is part of the course
Introduction to Portfolio Analysis in R
Exercise instructions
- Create a vector of the portfolio weights called
weights
. Remember, order matters! - Calculate your volatility budget using
StdDev()
on the return seriesreturns
. Setportfolio_method = "component"
andweights
equal to the created vector ofweights
. Call thisvol_budget
. - Combine the weights and the percentage risk contributions in a table called
weights_percrisk
usingcbind()
. - Print the table and note how different the percentage risk contributions are compared to the portfolio weights.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# Create portfolio weights
# Create volatility budget
vol_budget <- StdDev(___, portfolio_method = "___", weights = ___)
# Make a table of weights and risk contribution
colnames(weights_percrisk) <- c("weights", "perc vol contrib")
# Print the table