[R-SIG-Finance] pointers on using VaR.gpd with return series?
Brian G. Peterson
brian at braverock.com
Wed Aug 22 03:57:37 CEST 2007
Krishna Kumar wrote:
> Sylvain BARTHELEMY wrote:
>> I think that there is a problem with the VaR.gpd function, as it works on
>> USD/EUR and not on EUR/USD values
>>
>> library(PerformanceAnalytics)
>> eurusd <- get.hist.quote("EUR/USD", provider="oanda", start = "2006-01-01")
>> usdeur <- get.hist.quote("USD/EUR", provider="oanda", start = "2006-01-01")
>>
>> library(VaR)
>> v1 <- VaR.gpd(as.vector(eurusd))
>> v2 <- VaR.gpd(as.vector(usdeur))
>>
>>
>> output:
>>
>>
>>> v1 <- VaR.gpd(as.vector(eurusd))
>>>
>> Error in optim(init, gpd.liklhd, hessian = TRUE, method = "Nelder-Mead") :
>> non-finite finite-difference value [2]
>> In addition: There were 50 or more warnings (use warnings() to see the
>> first 50)
>>
>>
>>
> Ouch the default parameters there are two possible fixes setting the
> cut-off threshold using p.tr helps.
>
> (a) doing the following call on your data comes back with some results..
>
> > v1 <- VaR.gpd(as.vector(eurusd),p.tr=0.95)
>
> (b) The other alternate is to rewrite VaR.gpd and set hessian=FALSE
> where it makes the call to maximize the log-likelihood.
>
> optim(init, gpd.liklhd, *hessian = TRUE*, method = "Nelder-Mead") :
>
>
> Neither of these are "the solution" as this is more an Art than a
> science. Method (a) relates to the question of how to pick the
> threshold. Very few and
> you have biased fit and too many you are no longer fitting the tail.
>
> In this context I would point you towards the evir library and the
> excellent book by Alex Mcneill on this but doing the following should
> give you some hints..
>
> >require(evir)
> >shape(danish)
Kris and Sylvain,
Thanks for the pointers. I would have assumed that a VaR function would
set some reasonable defaults for threshold and p value, but I guess not.
Basically, I *know* that a GPD distribution is fitable in a reasonable
fashion to this data, as I've done it. I was hoping to cut down on my
implementation difficulties by using functions already written.
I'll try fitting with evir and QRMlib. (the QRMlib package is the R port
for functions from McNiel's book, which is well worth owning)
Stay tuned... as always, we'll share our results.
Regards,
- Brian
More information about the R-SIG-Finance
mailing list