No contribution in component VaR using historical method in R

804 views Asked by At

I am new to R. I am using package PerformanceAnalytics to calculate Component VaR of portfolio.

If I use gaussian method, it returns contribution.

> VaR(edhec, p=.95, method="gaussian", portfolio_method="component")
no weights passed in, assuming equal weighted portfolio
$VaR
           [,1]
[1,] 0.01193358

$contribution
 Convertible Arbitrage             CTA Global  Distressed Securities       Emerging Markets  Equity Market Neutral           Event Driven Fixed Income Arbitrage 
          0.0014400703           0.0003687009           0.0012961865           0.0032090406           0.0003479361           0.0013848605           0.0010051944 
          Global Macro      Long/Short Equity       Merger Arbitrage         Relative Value          Short Selling         Funds of Funds 
          0.0011151866           0.0015860006           0.0004412756           0.0009265836          -0.0027498306           0.0015623733 

$pct_contrib_VaR
 Convertible Arbitrage             CTA Global  Distressed Securities       Emerging Markets  Equity Market Neutral           Event Driven Fixed Income Arbitrage 
            0.12067381             0.03089608             0.10861675             0.26890849             0.02915606             0.11604738             0.08423244 
          Global Macro      Long/Short Equity       Merger Arbitrage         Relative Value          Short Selling         Funds of Funds 
            0.09344947             0.13290235             0.03697764             0.07764507            -0.23042800             0.13092245 

>



But If I use historical method it just returns a single portfolio level value

> VaR(edhec, p=.95, method="historical", portfolio_method="component")
no weights passed in, assuming equal weighted portfolio
[1] 0.01439231
> 


Is this correct? Am I missing something?

EDIT
I want to calculate component VaR of each part using historical simulation method.

2

There are 2 answers

1
Brian G. Peterson On BEST ANSWER

The 'historical' method is not a 'simulation' method. It is a measure of the realized historical loss quantile.

I have added historical contribution to PerformanceAnaltytics in v 1.4.3574 on R-Forge.

Your example now produces:

> VaR(edhec, p=.95, method="historical", portfolio_method="component")
no weights passed in, assuming equal weighted portfolio
$hVaR
  hVaR 95% 
0.01419502 

$contribution
Convertible.Arbitrage             CTA.Global  Distressed.Securities       Emerging.Markets  Equity.Market.Neutral           Event.Driven Fixed.Income.Arbitrage           Global.Macro      Long.Short.Equity 
        -0.0006396664          -0.0001887839          -0.0007621405          -0.0020091076          -0.0001331756          -0.0008771216          -0.0004113300          -0.0006202640          -0.0010782781 
  Merger.Arbitrage         Relative.Value          Short.Selling         Funds.of.Funds 
     -0.0002735736          -0.0005046562           0.0012263158          -0.0008257281 

$pct_contrib_hVaR
 Convertible.Arbitrage             CTA.Global  Distressed.Securities       Emerging.Markets  Equity.Market.Neutral           Event.Driven Fixed.Income.Arbitrage           Global.Macro      Long.Short.Equity 
        0.09012547             0.02659862             0.10738139             0.28307218             0.01876371             0.12358159             0.05795412             0.08739178             0.15192344 
  Merger.Arbitrage         Relative.Value          Short.Selling         Funds.of.Funds 
        0.03854501             0.07110328            -0.17278113             0.11634054 

It is available from SVN now, should be available in binary form 'soon', and will be included in the next release of PerformanceAnalytics

1
Tommy O'Dell On

Leaving off the portfolio_method="component" part returns all of the individual percent contributions.

> VaR(edhec, p=.95, method="historical")

Results:

    Convertible Arbitrage CTA Global Distressed Securities Emerging Markets
VaR              -0.01916    -0.0354             -0.018875        -0.044605
    Equity Market Neutral Event Driven Fixed Income Arbitrage Global Macro
VaR             -0.006385     -0.02254               -0.00929     -0.01624
    Long/Short Equity Merger Arbitrage Relative Value Short Selling Funds of Funds
VaR          -0.02544        -0.013455      -0.013175      -0.07848      -0.021265

Though why that is, I'm not sure, as I'm not familiar with the package or VaR in general.

help(VaR) does seem explicit to the behaviour. Not to my untrained eyes anyway.