[R-SIG-Finance] Value-at-risk

sadako guillaume.kovarcik at gmail.com
Sun Jun 19 18:07:20 CEST 2011

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

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 :


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.

More information about the R-SIG-Finance mailing list