Value-at-risk
braverock wrote:
On Sun, 2011-06-19 at 03:19 -0700, sadako wrote:
I'm ok with the notions of component and marginal VaR but can't retrieve results from marginal. First what is the PortfolioVaR with the portfolio_method="marginal" ? Except the sign, the 2 figures I get from these functions for PortfolioVaR are differents : VaR(tsdata,method="gaussian",portfolio_method="marginal") VaR(tsdata,method="gaussian",portfolio_method="component")$VaR
Marginal and component VaR *are* different. So I'm not sure I understand what you're asking, entirely. Component VaR is a coherent risk measure per Artzner. The component risks will add up to the univariate VaR of the entire portfolio. The univariate portfolio VaR is given in the $VaR slot you reference in your code. Marginal VaR is the difference between the univariate portfolio VaR of a a portfolio with the instrument in question and the VaR of the portfolio without that instrument.
Actually I didn't mean to compare marginal and component : I just use the portfolio_method="component" to get the univariate VaR of the portfolio ($VaR slot). I have the same number using calculation like qnorm(0.95,0,1)*sqrt(t(wghts)%*%var(tsdata)%*%wghts)-t(wghts)%*%colMeans(tsdata). I would have expect to have the same number for this univariate portfolio VaR in the "PortfolioVaR" column of VaR(...,portfolio_method="marginal"), - all other parameters being equal - but this is not the case. Both should represent the univariate portfolio VaR aren't they ?
I tried the following but the result is different from the function (here it is the 5th marginal) : VaR(tsdata,method="gaussian",portfolio_method="component")$VaR-VaR(tsdata[,-5],method="gaussian",portfolio_method="component")$VaR
Component VaR and marginal VaR aren't interchangeable, as described above, and as described in the documentation. simple subtraction doesn't work, because the portfolio (capital) needs to be redistributed. The weighting factor is weightfactor = sum(weightingvector)/sum(t(weightingvector)[, -column])
Nota : here again I just use the $VaR slot of component to get access to the univariate VaR of portfolio. I think I got the weight factor right implicitly since I don't set any special weights vectors : the VaR functions sets these weights equally in both members of my equation. Assume I'm working with 5 assets : - the univariate VaR of the portfolio : VaR(tsdata,method="gaussian",portfolio_method="component")$VaR is computed with default weights=c(0.2,0.2,0.2,0.2,0.2) - the VaR of the portfolio without the asset 5 : VaR(tsdata[,-5],method="gaussian",portfolio_method="component")$VaR is computed with equally-weighted default weights=c(0.25,0.25,0.25,0.25). These are indeed the weights of the 5-assets portfolio taking into account the weight factor of sum(weightingvector)/sum(t(weightingvector)[, -5])=1.25 Marginal VaR is the difference between the univariate portfolio VaR of a
a portfolio with the instrument in question and the VaR of the portfolio without that instrument.
So with no weight specification, the stricto-sensu calculation : VaR(tsdata,method="gaussian",portfolio_method="component")$VaR-VaR(tsdata[,-columnAsset],method="gaussian",portfolio_method="component")$VaR should work or this is non-sense ?
you can see the code with: PerformanceAnalytics:::VaR.Marginal
I'm having a look, maybe the difference stems from the application of Return.portfolio in the marginal case...
Many thanks for any helpful comment,
I hope this helps,
- Brian
It did, thank you very much Brian ! -- View this message in context: http://r.789695.n4.nabble.com/Value-at-risk-tp3516991p3609482.html Sent from the Rmetrics mailing list archive at Nabble.com.