[R-SIG-Finance] Multi-asset portfolio VaR
Brian G. Peterson
brian at braverock.com
Tue Jul 17 19:13:52 CEST 2007
Fabrice McShort wrote:
> I tried to calculate the VaR of a multi-assets portfolio.
> I have the historical data of the assets and their weights in the
> My impression is that the Performance Analytics Package calculate
> VaR of each asset. Not the VaR of the portfolio. But, when I use
> Package, I have the VaR (Historical simulation) of the portfolio.
> confirm my first impression or indicate me how to calculate the
> VaR of this portfolio with the Performance Analytics Package.
> Thanks for your help.
You are correct. The parametric VaR methods in PerformanceAnalytics are
all univariate. fPortfolio calculates historical mean-VaR from the
quantiles of observed returns. The simplest method to do what you want
is to combine functions from the two packages.
Use pfolioReturn() from fPortfolio to construct the return series of
your historical portfolio. Use this as the input to the parametric VaR
calculations in PerformanceAnalytics. This may be sufficient to answer
your requirements (it's how I calculate VaR of a historical portfolio in
Now, a true multivariate parametric estimation is somewhat more
difficult. I'll take the case of traditional mean-VaR first, and then
extend that to the Cornish-Fisher expansion.
In the case of traditional mean-VaR, to make a parametric estimate of
VaR that is multivariate, you need to construct the return series,
possibly using some robust estimator so that you get a more robust mean
to use as the input. The difficulty lies with the variance. You may in
this case wish to scale your observed component returns by the
historical weights and use one of the multivariate methods to come up
with a better multivariate covariance measure. See the Multivariate
Statistics CRAN Task view here:
Now, extending this to multivariate skewness and kurtosis is yet more
complex. PerformanceAnalytics provides functions for coskewness and
cokurtosis, but those aren't the actual inputs into the Cornish Fisher
expansion. The "moments" package provides slightly more options for
calculating skewness and kurtosis than those used in
PerformanceAnalytics and fBasics, but still doesn't provide a true
multivariate estimate of skewness and kurtosis. There is quite a lot of
literature on multivariate skewness and kurtosis, and if you're
interested, we would certainly welcome collaboration on creating a set
of functions for providing these in R.
For most purposes, the univariate case seems to be sufficient, but I
wanted to make sure to cover the issues in the true multivariate case.
More information about the R-SIG-Finance